home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio
/
Ham Radio CD-ROM (Emerald Software) (1995).ISO
/
bbs
/
msys109d
/
msys108.doc
next >
Wrap
Text File
|
1990-06-27
|
316KB
|
7,496 lines
MSYS
(C) Copyright 1990 By HUB COMPUTERS, INC.
INTRODUCTION
MSYS is a copyrighted program that I am making available to the
amateur radio community free of charge. Source code is not
generally available (if you want it you will have to pay dearly
for it!).
If you happen to see my system on the air don't get excited when
you see that I am running the next numbered version of MSYS. It
doesn't mean its ready for distribution! I go to the next number
on my system as soon as I release a version.
KA-NODe is a trademark of Kantronics Inc. The K NODe component of
MSYS is compatible with the Kantronics KA-NODe but is completely
different code from that used in the Kantronics tncs.
NET/ROM is a trademark of SOFTWARE 2000. The network NODe
component of MSYS is compatible with NET/ROMs but is completely
different code from that sold by SOFTWARE 2000.
The network NODe component of MSYS is completely different
from that in the net.exe program and g8bpq NODe software.
IBM is a trademark of International Business Machines Corp.
MSYS is available from the Cleveland Hamnet phone BBS. Numbers
are 216-942-6382 and 216-942-7516. Both are 300 to 2400 baud, at
least! This is a free bbs (you pay for the call). MSYS may also
appear on other phone bbs systems, but this is the only one I put
it on directly.
You may also obtain MSYS from me directly on disk (this may
be the cheapest way really and the fastest when a new version
comes out). For US addresses the cost is $5 per version which
includes the disk, mailer and postage. You may order several
versions at a time, I will hold your request until the versions
are released. This way you get to be the first kid on the block
with the new toy! When ordering from me, please specify
which version you already have or which one you want. Distribu-
tion is on 5.25 inch disks. I keep records with the following
information for people who order msys, so you may want to give
me this info. Also please indicate if you want me to call you
(collect) if it would be helpful to answer questions you send
me about MSYS.
CALL: Your callsign. This is the key I record
all the information under
NAME: Where to send the disk to!
ADDR1:
ADDR2:
CITY:
STATE:
ZIP:
COUNTRY:
TELEPHONE: If you want me to call you back (collect)
VERSION: The version you have now
OWED: How many you have prepaid
COMPUTER: Speed, memory,disk space, cpu chip etc.
TNC: Model & rom versions
KDOSK: Which version?
BBS: BBS callsign to send you msgs at
IP: Your IP address, if you have one
Mail requests for msys on disk to:
Michael Pechura
10809 Beechwood Drive
Chesterland, OH 44026
You may call me with questions/comments at 216-256-1588.
Canadian stations may want to contact VE3WZL for distribution
info in Canada.
ADDR:
J. B. Weazle McCreath
Aerial Acres
R.R. No. 4,
Goderich, Ontario, Canada
N7A3Y1
Ordered from me the cost is $7.50.
Other foreign stations: Price is $10 (US) per version which
includes Air Mail postage.
A Multi-User, Multi-Port, Multi-Function
Packet Radio BBS
By Mike Pechura, WA8BXN
(C) Copyright 1990 By HUB COMPUTERS, INC.
All rights reserved.
Version 1.08 June 1990
MSYS Documentation Table of Contents
SECTION - 1
MSYS Installation Instructions 1
MSYS.OPT 3
SECTION - 2
MSYS Command Summary 9
MSYS SYSOP Commands 14
SECTION - 3
MSYS BBS Commands 34
DATABASE HELP 41
SECTION - 4
Forward File Description 43
SECTION - 5
MSYS Network NODe Introduction 57
MSYS General information file 65
SECTION - 6
MSYS Utility Support Programs (MUTIL.EXE) 74
SECTION - 7
EDITVIEW (ED Command) 105
EDITFILE (EF Command) 106
SECTION - 8
HOUSECLEANING (HC command) 108
MODEM Support 110
Sysop commands related to TCP/IP 111
Samples of MSYS files 115
BIT PATTERN CHART 118
Frequent problems 119
INDEX 121
MSYS Installation Instructions
(c) Copyright 1990 by HUB COMPUTERS, INC.
Installation of MSYS is not particularly difficult but you
should follow the following steps in order.
1. Make a backup copy of the distribution disk. You can copy
the entire disk with Diskcopy.
2. Make a default directory on your hard disk. I call mine
MSYS. Use the command: md c:\msys
3. Go to the default directory: cd c:\msys
4. Make required subdirectories: md c:\msys\mail
md c:\msys\files
md c:\msys\help
md c:\msys\mail.bak
5. Un-arc the distribution disk.
6. Move the help files to the help sub-directory.
NOTE: REQUIRED FILE: HELP\MSYSMSGS.DAT
This file contains a number of the seldom used messages produced by
MSYS.
8. Edit the file c:\msys\msys.opt with your favorite program
editor. See documentation on setup for details.
9. RUN SETUP (MUTIL.EXE Function 9) to create c:\msys\msys.def
10. Make sure you have at least
files=20
in your config.sys file in the root directory of your boot disk.
11. Using any ASCII editor, create MSYSFWD.DEF. If you don't know
what to put it in now, put the following (to be replaced later):
F0 WA8BXN
WA8BXN
--------
12. Type MSYS and it should begin to run!
13. Type MERge. You can ignore any messages about MSYSBBSB.DAT at
this time.
*** Special Note
Determining the type of monitor you have: If you have a color
monitor, the default is ok. If you have a monochrome monitor that
uses an RCA phono pin plug then you also are really using a Color
Graphics Adapter interface card and the default should be ok.
If you can do the command MODE MONO (this is a DOS command) and
1-1
not get any error messages and the computer continues to work,
you probably have a monochrome (TTL) interface card. You will
need to specify WINDOW DISPLAY MONOCHROME in your MSYS.OPT file.
IF MSYS DOESN'T SEEM TO BE WORKING PROPERLY, REMOVE ALL (EVERY
LAST ONE!) RESIDENT PROGRAMS (INCLUDING YOUR ENTIRE CONFIG.SYS
AND AUTOEXEC.BAT FILES AND SEE IF IT WORKS THAT WAY. IF IT DOES,
PUT THINGS BACK IN ONE AT A TIME TO SEE WHERE THE PROBLEM IS!
1-2
MSYS.OPT
(c) Copyright 1990 by HUB COMPUTERS, INC.
Before MSYS can be used a configuration file (MSYS.OPT) must
be created and the program SETUP (MUTIL.EXE Function 9) must be
run to create the file MSYS.DEF. The file MSYS.OPT is a stand-
ard ASCII file and may be created with any program editor. The
basic format of the file is:
PORT number AT number INT number SPEED number [NAME description]
PORT number SUBPORT number OF [PORT] number [NAME description]
DIGI callsign FROM [PORT] number TO [PORT] number [AS callsign]
NUMCHANS number
BBS CALL callsign
BBS ALIAS callsign
KANODE CALL callsign
ANSWER CALL callsign
FORWARD CALL callsign
ID CALL callsign
ID EVERY number
AX25 FRACK number
AX25 MAXFRAMES number
AX25 RETRIES number
AX25 CHECK number
MONITOR IFRAMES on/off
MONITOR UFRAMES on/off
MONITOR SFRAMES on/off
MONITOR BFRAMES on/off
MONITOR OUTGOING on/off
MONITOR PORTS mask
WINDOW number SIZE number number number number
WINDOW number BACKGROUND number
WINDOW number FOREGROUND number
WINDOW number PAGE number
WINDOW UNUSED BACKGROUND number
WINDOW UNUSED FOREGROUND number
WINDOW DISPLAY color/monochrome
PROCESS processname [WINDOW] number
STACK processname number
STACK FORWARD 8000
STACK DECODE 1500
STACK CALL 4000
SYSOP NAME name
SYSOP QTH location
SYSOP ZIP zip code
MAKE
Notes:
1. Items enclosed in square brackets ([...]) are optional
2. Numbers assumed in decimal unless prefixed by $ then hex
is assumed
3. on/off means the word ON or OFF
4. mask is the numeric representation of a bit string with
the rightmost bit corresponding to port 0. 1=to be
1-3
monitored.
5. Where more than 1 space is shown, 1 or more space are ok
6. Callsign can include SSID (-number)
7. Ordering of the statements is generally not important
8. If there is an * at the beginning of a line it is ignored
9. The bbs alias, Kanode, Answer and Forward calls must be
different calls or SSID's.
Output from the execution of SETUP is the file MSYS.DEF (a
binary file) and a listing to the display console (which may be
routed to the printer via redirection: SETUP >LPT1:). The
listing consists of two parts: the original input statements
followed by a complete list of all options generated (including
defaults).
If any errors are detected, the MSYS.DEF file will not be
created. A sample of a MSYS.OPT file is found in MSYS.OPT on the
distribution disk.
Explanation of each statement type
-----------------------------------
PORT number at number INT NUMBER SPEED number [NAME description]
PORT number SUBPORT number OF [PORT] number [NAME description]
ThePORT statement has the above two variations. The number
following the word PORT is the port number. It must be between 0
and 5. The version containing the word AT defines an actual
serial interface while the SUBPORT version defines a second
logical port for multiport TNCs such as the KPC-4. There must be
one PORT statement for each port to be used. Assign port numbers
beginning with 0 in increments of 1.
Following the word AT is the base I/O address of the 8250 in
the serial port, such as $3F8. Following the word INT is the
interrupt number for the 8250, such as 4. After SPEED is the baud
rate to be used, such as 1200. Optionally the word NAME followed
by some description of the port can be given. A good description
would be the corresponding radio frequency.
For the other form of the PORT statement, the number
following the word SUBPORT is the logical channel number,
typically 1 for the KPC-4. Next comes the word OF in the
statement optionally followed by the word PORT. Next comes the
port number of a port statement defining an actual port (ie,
contains the word AT in its definition). The optional NAME and
description is the same as above.
PORT description lines can also have two additional parameters:
RADIOSPEED bitrate# TNCTYPE #
RADIOSPEED specifies the bitrate used by the TNC to the radio
(300 or 1200 probably). If 300 bps is selected, shortened prompts
are used in the BBS and perhaps elsewhere.
TNCTYPE is a number from 0 to 999. Tnc type 0 is a KPC-x. Any
other number causes a file MSYSTNC.# to be read for initializa-
tion statements to be sent to the TNC. These parameters would be
used for a tnc other than a KPC-X
1-4
NOTE: You must specify RADIOSPEED if you use TNCTYPE.
For example:
PORT 2 AT $2F8 INT3 SPEED 4800 NAME 145.01 RADIOSPEED 1200
TNCTYPE 1 (Should be all on one line)
AND IN THE MSYSTNC.1 FILE YOU WOULD HAVE THE COMMANDS THAT WOULD
PUT YOUR TNC INTO KISS MODE.(see note in general info section)
DIGI callsign FROM [PORT] number TO [PORT] number [AS callsign]
The DIGI statement defines a digipeater callsign. Repeat
this statement type up to 25 times as desired. The first callsign
is the callsign that would be used in the VIA list by a station
trying to use the digipeater. The port number following FROM
indicates the port that will be using this call. The TO port
number indicated the port on which packets having this the first
callsign as digipeater should be output on. For a normal
digipeater the two port numbers will be the same; for a gateway
they will be different. The optional AS callsign specifies a
replacement for the first callsign in the digipeater list when
the packet is sent out the TO port. If omitted the first callsign
is assumed (ie, no change). Consider the following examples:
DIGI MYDIGI FROM 0 TO 0
DIGI MYDIGI FROM 1 TO 1
DIGI W1XX-3 FROM 0 to 0
This would allow the callsign MYDIGI to be used in the via list
on either port 0 or 1. The packet is retransmitted on the same
port it it heard on. The call W1XX-3 can also be used to digipeat
on port 0.
DIGI MYGATE FROM 0 TO 1
DIGI MYGATE FROM 1 TO 0
This pair would define a gateway between ports 0 and 1 with the
callsign MYGATE used in both directions.
DIGI TOF1 FROM 0 TO 1 AS TOF2
DIGI TOF2 FROM 1 TO 0 AS TOF1
This interesting pair allows TOF1 to be used as a gateway
digipeater call on port 0 (no effect if used on port 1). When the
packet is repeated it will have TOF2 in the digipeater list where
TOF1 originally was. The opposite is true on port 1: When TOF2 is
used as a digipeater call the packet is repeated on port 0 with
TOF1 being substituted for TOF2. The substitution is transparent
to the users.
NUMCHANS number
NUMCHANS is used to specify the number of logical channels
that will be allocated. Each connection (while connected) uses
one logical channel. When the KA NODe is being used a second
logical channel is used for outgoing connects. Each logical
channel requires about 7K of memory. They are available for reuse
when a station disconnects.
1-5
BBS CALL callsign
This statement gives the callsign that can be connected to
for the "big" BBS. The callsign can contain an SSID. This
statement is also optional; if omitted stations will not be able
to connect to the BBS unless a bbs alias is given.
BBS ALIAS callsign
This statement gives the callsign that can be connected to
for the "big" BBS. The callsign can contain an SSID. This
statement is also optional; if omitted stations will not be able
to connect to the BBS unless a BBS CALL is given.
KANODE CALL callsign
This statement gives the callsign of the KA NODe which is
similar to the KA NODe provided in the Kantronics tncs. The
callsign can (and probably should) contain an SSID. This
statement is optional; if omitted stations will not be able to
connect to the PBBS.
ANSWER CALL callsign
This statement gives the callsign that can be connected to
by stations wanting to talk to the SYSOP. It is also used as the
callsign when the Connect command is used. The callsign can (and
maybe should) contain an SSID. This statement should not be
omitted.
FORWARD CALL callsign
This statement gives the callsign used when the BBS is
forwarding. It can (and probably should) contain and SSID. This
statement should not be omitted if the BBS is to be used.
ID CALL callsign
This statement gives the callsign that will be used for
identification purposes. It must be your actual amateur callsign
and should NOT have an SSID specified. This statement MUST be
used.
ID EVERY number
This statement specifies the number of minutes between IDs.
The list of stations for which there is mail is generated with
every ID.
AX25 FRACK number
Number is the number of seconds to wait before
retransmitting a packet. All of the AX25 statement forms are
optional.
AX25 MAXFRAMES number
Number! specifies the maximum number of frames that can be
outstanding before waiting for an ACK. Must be between 1 and 7.
AX25 RETRIES number
This is the number of retries that will be made before
abandoning a connection.
1-6
AX25 CHECK number
If there is no activity on a logical channel for 10 times
this number of seconds there will be an automatic disconnect.
MONITOR IFRAMES on/off
Turns on or off the displaying of Information frames. All
forms of the MONITOR statement are optional.
MONITOR UFRAMES on/off
Turns on or off the displaying of Un-numbered frames (except
beacons, see below).
MONITOR SFRAMES on/off
Turns on or off the displaying of System frames.
MONITOR BFRAMES on/off
Turns on or off the displaying of Beacon frames (Un-numbered
information).
MONITOR OUTGOING on/off
Turns on or off the displaying of all outgoing packets.
MONITOR PORTS mask
Determines which ports will be monitored. The rightmost bit
of this number corresponds to port 0, the next bit to the left
port 1 and so on. Ports with 1 bits are displayed (as selected
above). A value of 13 (decimal, $D in hex) would enable ports 0,
2 and 3, for example.
WINDOW number SIZE number number number number
This form of the window statement gives the bounds of the
window whose number is given after the word WINDOW. The four
numbers after the word SIZE are the upper left column (1 to 80),
the upper left row (1 to 25), the lower right column, and the
lower right row respectively. All of the WINDOW statement forms
are optional and should be used with great caution.
WINDOW number BACKGROUND number
WINDOW number FOREGROUND number
These two forms of the WINDOW statement give the background
and foreground colors of the window specified after the word
WINDOW. The rightmost number is a color number from 0 to 15 for
foregrounds and 0 to 7 for backgrounds. The corresponding colors
are:
Black 0 Blue 1 Green 2 Cyan 3 Red 4
Magenta 5 Brown 6 Lt Gray 7 Gray 8 Lt Blue 9
Lt Green 10 Lt Cyan 11 Lt Red 12 Lt Mag 13 Yellow 14
White 15
WINDOW number PAGE number
This statement assigns a window to the specified page (0-3).
WINDOW UNUSED BACKGROUND number
WINDOW UNUSED FOREGROUND number
1-7
These two statements give background and foreground colors
to the places on the screen not assigned to any window.
WINDOW DISPLAY color/monochrome
This statement selects the kind of display adapter you have,
COLOR or MONOCHROME. If you have a CGA card, select COLOR.
PROCESS processname [WINDOW] number
This statement specifies the window that is to be used for
output from the allowable process names. Be extremely careful if
you use this statement.
STACK processname number
This statement specifies the number of bytes to be allocated
for the stack for the allowable process names. You probably
shouldn't mess with the defaults!
SYSOP NAME name
You must use this statement to specify your first name.
SYSOP QTH location
You must use this statement to specify your location.
SYSOP ZIP zip code
You must use this statement to specify your zip code.
MAKE
Use this statement if you want to produce the new MSYS.DEF
file if there are no errors.
Here is a sample MSYS.OPT file for you to figure out!
port 1 at $3e8 int 4 speed 1200 name 223.70
port 0 at $2f8 int 3 speed 1200 name 145.01
digi bxng from 0 to 0 as bxng
digi bxng from 1 to 1 as bxng
digi bxn501 from 0 to 0 as bxn501
digi bxn501 from 1 to 0 as bxn370
digi bxn370 from 0 to 1 as bxn501
digi bxn370 from port 1 to port 1 as bxn370
digi test-4 from port 0 to port 1 as test-5
digi wa8bxn-3 from 0 to 0
bbs call wa8bxn-13
kanode call wa8bxn-1
answer call wa8bxn-14
forward call wa8bxn-12
sysop name Mike
sysop qth Kirtland, OH
sysop zip 00000
id call wa8bxn
window display color
make
1-8
MSYS Command Summary
(c) Copyright 1990 by HUB COMPUTERS, INC.
The following is a summary of the commands available at the
local keyboard for MSYS. The commands may be abbreviated to the
capital letters.
*comment Enables comment line from user to SYSOP
#msgs/use Displays total number of active msgs and known users on
BBS
@home On/Off
ABortfwd Aborts forwarding as soon as possible
ADDUser Allows sysop to add a user to bbs
APpend Used to append a file to a message and other general
uses
ARChive Puts given @BBS in specified subdirectory
ARP Lists the known callsign/IP address
ARP add Adds digipeaters to TCP/IP stations
ARP DEL Removes TCP/IP stations from arp list
ATtended ON/OFF Turn HF forwarding on and off
AUTODESt ON/OFF Add new DESts for known neighbors
AUTOHold On/Off Hold messages that contain call in R: lines
AUTONode ON/OFF Add new neighbors heard
AUTOKill Kill all messages after forwarding
BACkuptim Specifies time to make backup
BADuser ON/OFF
BBs Enter the BBS as a local user
BDigi Specifies digipeaters for beacons
BElloff Turns bells on or off (on turns bell off off turns
bell on)
BIDall Manipulates bids in the BIDLIST.DAT file.
BINterval seconds Nodes Broadcast interval
BMaxcon [port#] Max-BBS-connects
BOOT Remote sysop only
BPorts Used to indicate BBS ports only
BText Specifies one line of beacon text
BUDCalls Set or display the list of calls with SSID to be
monitored
BUDList Turn on/off selective call monitoring
C# Attempt to connect to station via digi list given on
port #
CHAnstat Displays status of a logical channel whose number is
given
CHEck Number of 10 second intervals of no activity to
disconnect
CL B # Change border color
CLrscrn Clear window number given or * for clear all
windows
CMdwindow Specifies the window number to be used for commands (CM
4)
COpy sourcepathname DEStpathname (include drive: if needed)
CRetries Sets number of retries for forward connect attempt
DEBug Used to display or modify memory
DELEfile Specifies file name to delete
DELUDays Specifies the number of days after which a user that
2-9
has not connected will automatically be deleted from
the system.
DELUSer Deletes a user from the user list
DESt ADD, REP, DEL
DFree Displays amount of disk space free
DIGipeats Displays digipeater/gateway list
DIRectory Displays directory for path specified Example DIR
mail\*.*
DISconnec Forces a disconnect on logical channel specified
DOcmdfile To execute a command file
DPorts Allows sysop to selectively disable digipeater
DRoute Callsign port# [digi1...digi8]
DTimedate Displays current date and time
EDit Screen editor for files
EFile Edits the specified file
EMsghdr Edits the header of the specified msg number in BBS
EUser Edits specified user
FBbstimes Allows specification of hours bbs is full function
FCall Finds the logical channel(s) in use by given callsign
FFile (find file) FF *.DAT C:\
FIle Converts specified msg number into file name given.
FOrward Initiates forwarding immediately
FRAck Displays or sets time in seconds to retransmit a packet
FREE Deallocates the logical channel specified
FSize Displays the file size for the pathname specified
FTIme Forward time
FTPgm File Transfer Protocol
FUlldup Used on the specified ports if set to ON.
F2 time Number of seconds to continue displaying monitored
packets after F2 (function key) was last pressed.
GEtmsgotd Reads and displays Message of the day file
GRep Will search the given file for the specified pattern
HCAll Allows you to properly specify your bbs hierarchical
callsign.
HCLean This command automatically deletes specified messages.
HEard # The J heard list recording is turned off if # >
Dispatches
Help Lists the names of the commands
HOstname Hosts id name TCP/IP
HREPlace Selects adding to end of existing hierarchical
@BBS field or replace.
ID * Forces transmission of an ID immediately (also mail
for list)
IGnore Calls in budcalls list will not be monitored
IPTTL # TCP/IP Time to live
JBbs Lists (P)BBSs heard and their paths
JDigipeat Lists Digipeaters heard and their paths
JGateways Lists Gateways heard and their paths
JHeard Lists stations heard and those connected to BBS
JKanodes Lists KA Nodes heard and their paths
JMsys List other MSYS systems heard
JNetrom Lists NET/ROM nodes heard and their paths
JTcp/ip Lists TCP/IP stations and their addresses
KEyboard Assign keyboard to channel number specified
KILLproc Abort specified process number (Can be hazardous!)
2-10
KPorts Allows sysop to selectively disable k NODe
LCount Counts number of lines, characters,and words in file.
(LC Filename)
LOCKkbd Locks the keyboard
LUsers List known user calls that have connected to BBS
MAKEPriva On/off {sets/resets making messages private by default}
MAStersrv Specifies the master WP server
MAxFrames Display or change number of frames sent before ACK rcvd
MAXRead Specifies maximum size message that can be read or file
that can be downloaded
MCon Number of connects allowed to sysop keyboard
MDir Creates given directory
MEMory Display amount of memory free
MERge Reads MSYSFWD.DEF and copies it to MSYS.FWD
MHclear Clears various J heard lists
MINmem Allows specification of the minimum free memory
MONBframe Enable/disable monitoring of Beacon (UI) frames
MONxx Enable/disable monitoring of PIDs on screen 2
monitoring
MONIFrame Enable/disable monitoring of Information frames
MONITor Enable/disable monitoring of incoming frames
MONOutgoi Enable/disable display of outgoing frames
MONPorts Select which ports to monitor (bit string, LSB=port 0)
MONSFrame Enable/disable monitoring of Supervisory frames
MONSTats Enables/disables recording of channel usage stats
MONUFrame Enable/disable monitoring of Un-numbered frames
MYAlias Display or change bbs alias callsign
MYBbs Display or change bbs primary callsign
MYCall Display or change Call/Answer callsign
MYKnode Display or change K NODe callsign
MYIpaddr Sets IP address that the system will respond to.
MYTcpcall Callsign used when sending arp and TCP/IP frames
NDWindow # Net default window size (frames)
NETBbs ON/OFF Enable BBS cmd in net NODe
NETCon ON/OFF Enable connect cmd in net NODe
NETNode ON/OFF Enable the Net Node
NETTalk ON/OFF Enable Talk cmd in net NODe
NEWUser # allows you to set the initial user flags
NInfo Gives net NODe status
NNode Takes you into the NODe as if you were connected to it.
NOBulls On/Off When on, no bulletins will be forwarded during
normal forwarding.
NODe SEnd, SAve, REStore, ADD, REP, DEL
NPorts portmask Ports to which nodes broadcast
NRCall callsign Sets net NODe callsign
NRid mnemonic Sets net NODe mnemonic identifier
NTtl # Network time to live (max hops)
OLdbids On/Off
OCInit # Initial obsolescence count
OCMmin # Minimum obsolescence to broadcast
PAClen Specifies maximum number of bytes that are put in a
packet
PATh Display information about given user callsign
PForward Display information about given BBS callsign
PMessage Message# prints specified message
2-11
POrts Display information about ports
PPersist [port#] value (255 to 0)
PQuality [port#] # Quality for nodes hear on port
PRInt Prints a file (on printer)
PROcesses Display status of processes
PRTmsgs Enables/disables printing of messages
PWindow Sets window to be used by a process
QUIT Terminates execution of MSYS gracefully more or less
RDir Removes the given directory
REMove DESt callsign Deletes DESt thru all neighbors
REName Oldpathname newpathname (must both be on same drive)
REPlaces Replaces incoming @BBS calls
RESpons # Number of seconds to wait before sending out a
response
RETries Displays or sets number of retries before disconnecting
RUn Allows you a DOS program with many limitations.
SEnd Sends a line of text to specified channel: SE 1 The msg
SLottime [port#] value (0 to 255)
SMTP Simple Mail Transfer Protocol
SNow Enables/disables changing screen only during retrace
SOrt Will sort up to 200 eighty byte records
STatus Displays some status information
SUspendtr Number of free bytes in input buffers below which
monitoring is turned off.
TABs ON/OFF Default is on
TACK Transport ACK delay (responsetime)
TBdelay Transport busy delay
TELnet Used to establish keyboard to keyboard connection
TImezone Allows entry of your time zone
TFrames Send test frames
TNatime Transport no activity timeout time
TPorts Enables/disables ports for TCP/IP
TRetries Transport retries
TTimeout Transport timeout (Net FRACK)
TYpe Allows you to type a file
TXDelay [port#] value (0 to 255)
TXTail [port#] value (0 to 255)
Trace25 Enables/disables trace of AX.25 state changes
TraceIP Enables/disables trace of TCP/IP state changes
Users Writes out all users to file
Video Displays or changes video monitor in use
WAtch Toggles watching of specified channel number
WBackgrnd Sets background color for specified window
WColors Gives list of colors and their numbers
WForegrnd Sets foreground color for specified window
WPAge Sets page number to display specified window
WPEvery Specifies the number of days between sending out WP
infomation.
WQupdate Worst quality DESt route to record
WSize Specifies coordinates for specified window
Window Displays current window definitions
WHo Displays current users/messages
W? Displays window number in upper left of each window
<Esc> Cancel partially typed command
Function key usage:
2-12
F1 through F4 select page to display (0 to 3 respectively)
F6 causes the following characters to the next return to be
treated as a command even if keyboard currently connected to some
other process (such as local bbs, etc.).
Ctrl/F2 suspends activity on the monitor screen (F2).
Ctrl/F4 terminates MSYS as if QUIT command was used
Ctrl/F5 is the same as the PRocesses command
Ctrl/F6 assigns keyboard to command processor
Most commands give information on their usage if you type the
command name followed by a question mark. Example WS ?
2-13
MSYS SYSOP Commands
(c) Copyright 1990 by HUB COMPUTERS, INC.
*comment Enables comment line from user to SYSOP
#msgs/use Displays total number of active msgs and known
users on BBS. The number of messages that can be on the bbs is
set by the mailsize program and the maximum number of users is
500.
@home On/Off If On, causes @bbs field of messages for
registered users of the system to be replaced with the home bbs
they gave with the NH command (the way it has been done in the
past). If Off, the @BBS field is not modified.
ABortfwd Aborts forwarding as soon as possible (not always
immediately). You may want to DISC the channel forwarding is
using (particularly if its trying to connect) to speed things
up.
ADDUser Format ADDUser callsign
This will allow the sysop to add a user callsign to the user file
without that station having to connect to the bbs. This can be
useful in conjunction with the automatic @BBS generation. After
the new user has been added you automatically will EUsers for the
callsign at which time you can fill in the desired fields.
APpend Sourcefile DEStfile
This command causes the source file to be appended to the
DEStination file. This command may be used to append a file to a
message file, among other more general uses.
ARChive @BBS filename
This command will concatenate all current msgs with @BBS given to
FILES/filename. No compression is done. Example: ar RLIBBS
RLINOTES/JUNK (This assumes you have a RLINOTES subdirectory in
the FILES directory)
ARP Used without an argument lists the known callsign/IP
address correspondence determined by TElnet connects. An optional
argument, CLEAR, may be used to erase all of the ARP entries.
arp add allows you to manually add (or put it in MSYS.DO) a
station (and up to eight digipeaters) to the arp list. Syntax:
arp add callsign port# ip-address [digi1 [digi2]]
Examples: arp add WA8BXN 0 44 70 4 8 K8OZ
arp add N8HSP 2 44.70.4.10 WB8CQR-5 WB8APD
You can put a / and a number after the IP address. For example,
you can say:
arp add W3AAA 1 44 80 1 1/24 K8AAA
This says that any ip frames going to an IP address with 44 80 1
in the left 24 bits should go to W3AAA (thru K8AAA as a digi).
Thus the number after the / is the number of significant bits to
2-14
keep in comparisons.
arp delete allows you to remove a single entry from the table.
Syntax: arp del callsign
Example: arp del N8HSP
ATtended When set to ON all forwarding is allowed. If off, ports
with radio speed of 300 will forward only those messages in which
the from call is the idcall (messages that you originate) or the
to station in the message is the station you would directly
connect to for forwarding. HF reverse forwarding is also inhibit-
ed if ATtended is OFF. Note that the regulations appear to allow
you to receive messages unattended. So if you don't have a STA
for HF turn AT OFF when you aren't there and remember to turn it
ON when you are. To be on the safe side, put ATtended OFF in your
MSYS.DO file should the system reboot when you aren't present.
AUTODESt ON/OFF Default OFF Add new DESts for known neighbors
AUTOHold On/Off This command specifies what should be done
with messages that contain in them R: lines with your Hierarchi-
cal bbs callsign (see HCA command). This normally indicates
that the message has passed your system before and probably
is in a routing loop. Currently such messages are held. AUTO-
Hold ON means to do this. If AUTOHold is OFF the messages will
not be held.
AUTOKill Kill all messages after forwarding.
AUTONode ON/OFF Default OFF Add new neighbors heard
BACkuptim Specifies the time to make backup of the mail file.
BADuser Takes an operand of ON or OFF. When ON,the calls in
the BUDCall list will be totally ignored by the system. Such
stations will not be able to connect to the system in any
way(AX.25 or TCPIP) and will not be digipeated. Do NOT use SSIDs
in this list so that the listed calls can be used to match any
incoming SSID the station may use. Try to avoid using this
facility unless really necessary as it does add some overhead in
the processing of every packet received. Hopefully stations that
misbehave will realize that they can be turned off and not
persist in their activity.
BBs Enter the BBS as a local user this command gets you into the
BBs as if you had connected to the BBS, with a few minor
differences. Of course while you are using the BBS other stations
can still connect as usual. When in the BBS you use the BBS
command set (B,C,D,H,I,J,K,L,M,N,P,R,S,U,V,W,X,?,*). If you use
the L command you will see all messages including the private
ones. Likewise you can Read and Kill private messages. Message
texts can be gotten from files by going through the steps of
sending a message: use the S command to give DEStination station
and @BBS, then the title, and then simply ^Z for the text. Then
do a LL 1 command to see the number assigned to the message.
2-15
Exit the BBS using the B command then use the COPY command to
copy a file to replace the empty file in the MAIL directory. For
example if the message was assigned a number of 123, then you
might use the command CO tempfile mail/msg123.dat. See the COpy
command below for more details of its use.
In the bbs from the local computer keyboard you can include
afile in the text of a message you are sending. After the
Enter Text line, before you do the ^Z, a line of the form \+\
filename will include that file at that point in the message.
Example:
SB ALL @ MSYS
My MSYS.DO file
Here is my msys.do file as an example:
\+\ msys.do
Do not use this file directly! 73 - Mike
^Z
You can specify a window number as an argument to the BB com-
mand. BB 0 will use the top half of the F1 screen for example.
If were in the BBS locally and leave it for some reason with
it still active and use the BB command you will return to your
previous session rather than starting a new one.
BDigi - Lets you specify up to 8 digipeaters for beacons
(id,mail, btext) Can be different for each port.
Examples:
bd 4 digi1 digi2 sets digi1 and digi2 as digipeaters for
port 4 only
bd digia digib sets digia and digib for all ports
bd 5 clears digipeaters for port 5
BElloff on/off on makes it quiet, off is default
If BElloff is negative, keyboard connects and normal bell still
work.
If BElloff is positive, no bells will sound. If BElloff is zero,
all bells work.
BIDall Manipulates bids in the BIDLIST.DAT file. The follow-
ing operands may be specified:
+ bidstring Adds given bidstring to bid file
- bidstring Deletes given bidstring
= bidstring Tells if given bidstring is present
# Tells number of active bids/mids
ON Enables bids for non-bulletins
OFF Disables bids for non-bulletins
BINterval seconds - Default 3600 - Nodes Broadcast interval
BMax This command limits the maximum number of connects on a
port. BBS connects are exempted from the limit but count for
other users. Normal users get a BUSY response when over limit.
BM 1 allows 1 user per port. BM [port#] max BBS connects.
If a port is marked BBS ONLY (see BPports) the BMax
value specified limits the number of bbs connects. For non-bbs
only ports, the BMax value does not effect number of bbs con-
2-16
nects.
BOOT Boots computer (Remote sysop only) The correct reply to
the question asked by the boot command is Yes (case is
important).
BPorts This command is used to indicate which ports are BBS
ONLY connects. A one in the corresponding bit position makes a
port BBS ONLY. For example, BP 5 would only allow bbs con-
nects on ports 0 and 2. The default is no BBS only ports. If you
do use this command to make BBS only ports, you better be sure to
mark all the bbs stations with user flag of 2!
BText - Lets you specify 1 line of up to 80 characters of your
own beacon text. Can be different for each port.
BUDCalls Set or display the list of calls with SSID to be
monitored This command is used in conjunction with the BUDLIST
command below. As operands you give a list of callsigns, with
SSIDs, that are to be monitored. The calls should be separated
by blanks. To list the current setting of BUDCalls, type the
command with no operands. Examples:
budc w1xx w2xx-1 w2xx
budcalls K9XXX
budc
Note: their can be up to 10 calls.
BUDList To enable only those packets with calls in the BUDCalls
list to be monitored use the command BUDL on. To monitor packets
for all calls, use the command BUDL off. This is the default
setting.
C# This command is used to connect to another station. The
letter C must be followed by a digit indicating the port number
to be used for the connection. This is followed by a space. Next
comes an optional window number to be used for the conversation.
Next comes the callsign of the station you want to connect to,
with SSID if needed. Following this can come Via and a list of
digipeaters to use, separated by commas.
Examples:
c1 w1xxx
c0 w2xxx v k2xxx
c2 k3xxx-2 v n4xxx-3,a5xxx
When you issue this command the screen to be used for the
conversation will be cleared and you will see a line "Enter
converse for channel # port #". When connection is made you will
get a message "*** Connection established to callsign". If the
attempt retries out (determined by the RETries value), you will
get the message "Quit converse for channel # because no
connect!". In this case the default CALL process window may show
"*** callsign busy" if this is why the connection could not be
made. Pressing any key before getting one of these messages will
abort the connect attempt and return you to the current command
processor window. When you are connected to a station, you type
lines to be sent to the other station and will see lines typed by
the other station. Once you begin typing a line it will not be
2-17
interrupted by lines from the other station until you press
return. To terminate the connection, type ^C, the letter D
(^CD) and press return. If you want to save what you are getting
on disk, press the \ key three times and then press return.
You will get the message "*** Capture file opened ***". All
lines you receive will be displayed as usual as well as being
written to the file CAPTURE.DAT.
When you turn capture on with the \\\ at the beginning of a
line, you can also specify a filename to be used in place of the
default CAPTURE.DAT. For example you can type \\\ junk.abc to
start capturing your conversation into the file JUNK.ABC. When
you have already turned capture on during a connection,if you
type something like \\\morejunk.xyz then the current capture file
will be closed and now your conversation will be saved in the
file MOREJUNK.XYZ. Three \followed by return will alternately
suspend and resume the capturing of lines to disk. When you
disconnect (or get disconnected) the capture file will be closed.
Note: That the default capture file name is always CAPTURE.DAT.
These files can be viewed by using the TYpe command or edited
with the EFile command You could for example connect to some
other BBS, read a message found there after turning on capture
and then use the capture file to replace a message text for one
of your own messages.This procedure is explained in more detail
for the BBs command above .
\+\ filename
That file will be sent to the station you are connected to as if
you typed it. Example:
\+\ files\stuff
would send the file called stuff from the files subdirectory.
CHAnstat Displays status of a logical channel whose number is
given. This command requires an active channel number as
a parameter. Information about the channel will be displayed
in response to this command. The information includes the
Port number used, the call of the station connected to and a
status byte in hex.
CHEck Number of 10 second intervals of no activity to
disconnect. This command specifies the number of ten second
intervals after which if there has been no activity on a
channel a disconnect will automatically be generated. To see
what value is currently set, give the command with no
parameters.
CLrscrn Clear window number given or * for clear all
windows. This command clears the window number given. If * is
given for the parameter, all windows are cleared. If no
parameters are given, then the command processor window is
cleared.
CL B # Allows you to set the border color (used on all
screens). Use the WC command to see the color list. Default color
is black for the border. Any of the 16 color # (0-15) may be
used.
CMdwindow This command is used to change which window is used
2-18
by the command processor. The default command window is number
0 which by default is the upper half of display page 0. This
command is useful when you want a larger window (to type a file
for example) to be used by some command. The new window
is cleared automatically by this command. You will then get the
cmd: prompt. (page 0 =F1 page 1 = F2 etc.)
COpy Sourcepathname DEStpathname (include drive: if needed)
The copy command will return an error message if it isn't able
to copy all the records.
CRetries - Sets number of retries that there will be for forward
connect attempt
DEBug Used to display or modify memory
Options for debug are: E segadr:disp allows you to modify memory
at the given address. D segadr:disp displays memory at the given
address. All numbers are in hex. Q gets you out of debug. Any
non hex input to E gets you out of E.
DELEfile This command is used to delete a file. You must give
as a parameter a single file path name without wildcards.
The parameter can contain a drive specification and/or
directory names for the given file.
DELUDays Specifies the number of days after which a user that has
not connected will automatically be deleted from the system.
Default is 100 days. Locked users (see bit list in EUser cmd),
BBS call signs and bad users are not automatically deleted.
DELUSer This command removes a user call from the BBS user
list. The callsign given as a parameter must match the a call
seen on the list produced by LUsers exactly (including
case). Use this command to REMove users that haven't been
active lately when you are getting near the capacity of the list
(currently 500 users). The last time a given station con-
nected to the BBS may be obtained by using the P command
while in the BBS.
DESt ADD [id:]call neighbor obs quality Adds new
DEStination
" REP callsign neighbor obs quality Changes obs & qual
" DEL callsign neighbor Deletes DESt thru given neighbor
DFree This command displays the number of bytes free on a
disk. If no operands are given the space is for the default disk
(normally C). If a letter is given as a parameter, the number of
free bytes will be given for that drive. Be sure the drive is
ready before using this command. If its not and you get the DOS
error message, type I for ignore.
DIGipeats This command displays the list of digipeater defini-
tions.
DIRectory Displays directory for path specified Example DIR
2-19
mail\*.* This command displays a sorted directory listing. Only
the names of the files (or directories) are given, not the sizes.
To get the size of a file, use the FSize command described
below. Names of directories are enclosed in <>. If no argument is
given, you will get a directory for the current default
directory (normally C:MSYS). To list some other directory, give
the path to that directory and a file name of *.*. Other file
specifications can be given for a selective directory list. If
you include a drive specification in the pathname, be sure the
drive is ready before using this command. Examples:
dir mail\*.*
dir a:*.*
dir files\*.c
DISconnec This command can be used to force a disconnect on
the specified active channel. It will rarely be needed.
DOcmdfile This command is used to execute a command file.
DPorts mask (see KPorts mask)
DRoute callsign port# [digi1 ... digi8]
DRoute DELete
The first form of this command allows you to specify the
TCP/IP station to which IP frames are routed by default (Default
Route). You specify as parameters the callsign of that station
(with SSID) and the port number used to reach that station.
Optionally up to 8 digipeaters can also be specified to be used
to reach that station.
The second form of this command allows you to turn off
default routing of IP frames.
If you do have a default route specified, then all incoming
IP frames that are not otherwise handled by existing ARP table
entries will be sent to the default station. This station will
also be used for any server functions you initiate (telnet for
example) to IP addresses that are not currently in your ARP
table. Care must be taken in deciding if this command is
appropriate to use in your particular situation.
DTimedate This command displays what the computer thinks the
current data and time is. To change it you unfortunately must
exit MSYS and use the appropriate DOS commands. Time is(hh:mm:ss)
EDit filename - screen editor for files. Escape gets to command
mode, do help for command list
EFile This command is used to edit an ASCII file with re-
cords <= 80 bytes in length. At least one operand is required
which is the pathname to the file you want to edit. A second
operand may optionally be given that gives the size of the
work area in lines to be allocated (default is 200). See the
separate documentation for EDITFILE for more information on the
editor.
EMsghdr This command allows you to edit the fields of a
message header. One operand is required which is the message
2-20
number to edit. This command also automatically sets the message
length to the actual size of the associated message file. This
is useful when you have replaced a message file with some other
file as described above. This command is also useful to change
the status of messages to ALL (or others) that have not been
marked as being read (but actually have been) so that they don't
appear in the MAIL FOR list sent out with each ID. If you press
Esc when editing you will skip the current and remaining fields
and see the header again. This allows you to bypass having
to press return for all the fields you don't want to change. If
you place a string of characters that begins with a period after
the message number, it will be appended to the existing @BBS
field of the given message. Thus if the @BBS of msg 123 was
WA8BXN then EM 123 .NTSOH would cause the @BBS field of msg 123
to become WA8BXN.NTSOH. If you type a blank for the BID field the
Bid is cleared entirely (you still need to get rid of the $ in
the type).
EUser Edits specified user
Display the meanings of the possible flags bits.
FBbstimes Port#- Allows specification of hours bbs is full
function. Times for full bbs use allowed to all ports is required
not optional.
FCall This command finds the channel associated with a call-
sign. The single required operand is a callsign without SSID. All
channels in use by that callsign (with any SSID) will be dis-
played giving the Port, process number and name and complete
callsign (with SSID). This can be useful when you were in the
middle of a conversation with some station (and still connected)
but switched the keyboard to some other process (maybe the com-
mand processor) and now want to get back to that conversation.
Use the KEyboard command with the appropriate process number to
do so.
FFile (find file) When you give it a file name pattern and
optionally starting path location and it will list all files
that match the pattern. The following would find all files that
have the extension .DAT on your C: disk
FF *.DAT C:/
The output from this command gives the date, time, size and
complete path names for all files that match the search
specification.
FIle - converts specified msg number into file name given.
(msg# filename.)
This command removes the forwarding lines at the beginning of the
file it creates. If you really want to keep them, use an
appropriate rename command instead.
FOrward This command causes forwarding to begin immediately if
it is not currently going on. You might want to use this command
when you have just entered a new message with an @BBS specifica-
tion that you want sent out now. FO [callsign] of a single sta-
2-21
tion to immediately forward to. This must match the callsign
(including SSID) found on the F line in the forward file.
FRAck This commands allows you to set or display the number
of seconds to wait for an acknowledgment to arrive for a packet
that is sent out. If it doesn't arrive within the number of
seconds specified the packet will be retransmitted. The retry
count for the channel will also be incremented. Making this
parameter to small will congest the channel and cause unwarranted
disconnects. The default is 6 seconds. If in doubt, err on the
high side! (port number optional)
FREE This command allows you to immediately release an
allocated channel. The process using the channel will see
this as a disconnect. This command will not be needed
very often. Disconnecting which frees the channel will auto-
matically occur after the CHEck interval has expired with no
activity.
FSize This command can be used to determine the size of a
disk file. One operand is required which is the pathname to the
file you want the size of. It may include a drive specification
and directory paths in addition to the file name. Wild cards are
not allowed. Be sure the drive containing the file is ready
before using this command.
FTIme This command sets the time in minutes after the hour
that forwarding will start. If time is negative number such as -5
then you will forward every 5 minutes
FUllduplex Used on the specified ports if set to ON. This may
be useful for satellite operation or with fullduplex repeaters.
Examples:
FU ON turns full duplex on for all ports
FU 2 OFF turns full duplex off for port 2
F2 Time # is the number of seconds to continue displaying
monitored packets after F2 (function key) was last pressed. The
default is 600 seconds (10 minutes). Thus 10 minutes after you
last press F2 monitoring will be turned off until you press F2
again. If you set F2 to 0 this function will be turned off.
GEtmsgotd This command causes the Message of the day file
(MSYS.OTD) to be read and displayed. The Message of the day is
sent to all stations connecting to the BBS. You can create
and/or change this file using the EFile command. Keep the con-
tents short!
GRep (filename pattern) will search the given file for the
specified pattern, displaying lines that match. Case is ignored
in the search.
FTPgm Takes a host-id as an argument (it can be either an
IP address in the square brackets or a symbolic IP address).
2-22
It establishes a connection to the FTP server of the speci-
fied system. FTP is the File Transfer Protocol used in TCP/IP.
HCAll This command allows you to properly specify your bbs
hierarchical callsign. This is the callsign put in the R: lines
of messages as they pass thru your system. If you don't give
this a value, your ID callsign will be used. Hint: if you run
more than one copy of msys for some reason and pass messages
between the two systems, make your HCAll slightly different on
each. I might use for example WA8BXN.OH.USA on one and
WA8BXN.OH.USA.NA on the other. This will prevent unnecessary
holding (or deleting, see OLdbids) of messages validly passed
from one system to the other.
HCLean This command allows you to automatically delete speci
fied messages every day at specified time. (see MSYS.HCL) Oper
ands are:
HC - <no operand> shows time in minutes after 00:00
(midnight) that housecleaning happens.
HC? - Gives a short description
HC# -Sets the time for housecleaning in minutes after
00:00 (midnight)
HC NOW - Manually initiates housecleaning
HEard # The J heard list recording is turned off if the number
of dispatches per second in the last minute is less than the
number given. Default value is 3100 which j heard recording. J
Heard list recording takes quite a bit of computation for every
packet heard. This command was added to speed things up on slower
computers. (you might want to use a value of 10)
Help This command lists the names of the available commands
with the required part of the command name in capital letters.
HOstname TCP/IP HOSTNAME
HREPlace This command selects adding to end of existing
hierarchical @BBS field info from BBSTONTS.DAT file (if HREP is
off) or replacing anything past the first part with the
information from the BBSTONTS.DAT file (if HREP is ON). Note that
if some msys knows how to forward from some existing part of the
@BBS field, no changes are made to it.
ID * This command will send out an ID on all the ports
immediately. You might use it to see if all your radios go into
transmit as they should. It also will send out the MAIL FOR list.
The text of the ID is not displayed at this time, but is shown
once during initialization. Nothing is displayed by the automatic
IDs sent out (on the F1 screen). To see what mail is outstanding
for local users, type ID. To really force an ID to be sent, type
ID *
IGNORE on/off Off is default
When on calls in the budcalls list will not be monitored
2-23
IPTTL # Where number is the time to live. Default is 16.
JBbs Lists PBBS'S heard and their paths
JDigipeat Lists Digipeaters heard and their paths
JD command screens out funny callsigns.
JD command also lists callsigns with /R in id.
JGateways Lists Gateways heard and their paths
JHeard Lists stations heard and those connected to BBS or PBBS
This command gives a list of the last 10 stations that were
heard on the ports or connected to the BBS or PBBS.
JKanodes Lists KA Nodes heard and their paths
JMsys Lists other MSYS systems heard.
JNetrom Lists NET/ROM nodes heard and their paths
These commands give the PBBS systems, KA Nodes and others
that have been heard on the ports. A BBS is a system that sends
out a beacon that contains /B after what looks something like a
callsign. A KA NODe is identified by /N in its beacon to ID. For
both of these commands the date, time, callsign and path are
given. This pair of commands is useful to identify the PBBS that
goes with a given KA NODe. The Net nodes are also included. The
real call for such nodes are given in []. Real Netroms get the
real call in {}.
JTcp/ip List TCP/IP stations and their addresses
KEyboard The KEyboard command allows you to manually reassign
the keyboard. As a parameter you give the channel number of
the process you want to have the keyboard. You can get
the channel number from the lower right part of the F1 screen. To
get the keyboard back to the command processor so you can
issue this command either press ^F6 to assign the keyboard
to the command processor or press F6 to temporarily send
keyboard input to the command process up to and including
the next return key.
When you press a key, it is placed in the input buffer of
the process to which the keyboard is logically connected.
Initially this is the command process. When you give certain
commands (such as BB, PB, C) the keyboard will be assigned to the
new process created for the command. When the process is
terminated, the keyboard is automatically assigned back to the
command scheduler.
KILLproc Abort specified process number (Can be hazardous!)
Never use this command to kill a permanent process. Better yet,
just don't use this command!
KPorts mask see monitor ports
DPorts mask
These commands allow you to selectively disable the K NODe on
any ports or use of the ID call as a digipeater (DPorts) on any
2-24
ports. The mask works just like the port mask for the
MONPorts cmd. A 1 bit enables the corresponding port, with the
rightmost bit corresponding to port 0. These commands will be
most useful for HF operations if you don't want the K NODe to be
accessible to or from the HF port, for example.
LCount This command counts the number of lines, characters and
words in a given file. (LC filename with path)
LOCKkbd This command "locks" the keyboard so that any keys
pressed are ignored. I put it in for two reasons. First, I am
getting RF into my keyboard from HF radios and it generates
random characters. Second, my 3 year old son sometimes likes to
press the keys. To "unlock" the keyboard, simply type lock again
(no CR needed this time). When unlocking the keyboard, "lock"
must be all LOWER case.
LUsers Use this command to see who has connected and
more importantly how many users are in the user file since it can
hold only 500 users currently. LU takes an optional argument
to list users flagged as BAD, EXPert, LIMited, LOCked, XFAst
and BBS system. Example: LU EXP
MAKEPriva On/off {sets/resets making messages private by default}
MAStersrv Specifies the master WP server (default is
AD8I.OH.USA.NA and probably shouldn't be changed).
If MAS is set to NONE, no WP messages will be sent.
MAXFrames Display or change number of frames sent before ACK rcvd
MAXRead - specifies maximum size message that can be read or file
that can be downloaded.
MCon specifies number of connects allowed to the sysop keyboard
at one time if MCon 1, only allows an incoming call to the key
board to be answered if there are no other keyboard connections.
MCon 0 prevents all incoming keyboard requests.
MDir Makes specified directory
MEMory Display amount of memory free
MERGE (no parameters, except for ? for info).
This command reads MSYSFWD.DEF and copies it to MSYS.FWD,
expanding any include files ($filename). A new file is also
produced,MSYS.BBS that is a sorted list of all possible BBS's
that can be forwarded to (including things like ARRL, 44*, etc).
This command was added for 2 reasons: previously, if there were
any include files in the MSYS.FWD files they did not get read
when a pf command was used and secondly, the new file is needed
for hierarchical forwarding. The leftmost part of the
hierarchical route only is used for forwarding and the
contents of the new file were needed for efficient processing.
2-25
So, the bottom line is rename your existing MSYS.FWD file to
MSYSFWD.DEF and then use the MERGE command. Any future changes
you make to your forward file must be done to MSYSFWD.DEF
followed by use of the MERGE command. Its called MERGE be-
cause it merges in the include files by the way.
MHclear [letter [port or B]] clears the various J heard lists
MH clears everything
MH D clears all digi's heard
MH D 1 clears digi's heard on port 1
letters are HBKDN or G (Heard, Bbs's, K Nodes, Digi's,
Netroms)
MINmem Allows specification of the minimum free memory as re-
ported by the MEM for which a new connect request will be accept-
ed. Default is 32000. Values less than 16000 probably will be
disasterous.
MONBframe Enable/disable monitoring of Beacon (UI) frames
MONxx - Replaces MONCC, MONCF etc - now can specify any hex
value
for PIDs to ignore on screen 2 monitoring
MONIFrame Enable/disable monitoring of Information frames
MONITor This is the master command for monitoring packets
heard. If this is set to OFF then there will be no monitoring.
If set to ON then the types of packets selected will be monitored
for calls as selected by BUDCalls on the ports set by MONPorts.
MONOutgoi Enable/disable display of outgoing frames
MONPorts Select which ports to monitor (bit string, LSB=port 0)
This command if given no argument displays which ports are to
be monitored (all defined ones by default). If an number is
given for an argument, its bit pattern determines which ports
will be monitored. The rightmost bit corresponds to port 0. A one
bit enables a channel for monitoring.
MONSframe Enable/disable monitoring of Supervisory frames
MONSTats enables/disables recording of channel stats. Defaults
to OFF.
MONUframe This group of commands determines which kind of frames
will be monitored. If no operand is given, then the current
setting of the variable will be displayed. If a single parameter
is given (either ON or OFF), then the variable will be given
that value.
MYAlias - display or change bbs alias callsign
MYBbs - display or change bbs primary callsign
2-26
MYCall This command displays your keyboard callsign if there
is no argument, or sets the keyboard callsign (used to
connect and respond to connects) to the call given as an argu-
ment (including SSID).
MYKnode - display or change K NODe callsign
MYIpaddr - Takes four integers in the range 0 to 255. It sets
the IP address that the system will respond to. Example: MYI 44
70 4 6 If MYIpaddress is not specified, or set to all
zeros, the TCP/IP support will be inactive.
MYTcpcall - Display or change a callsign (with SSID) that
will be used when sending arp and TCP/IP frames. It can be the
same as the ID call in most cases.
NDWindow # Default - 4 Net default window size (frames)
NETBbs ON/OFF Default ON Enable BBS cmd in net NODe
NETCon ON/OFF Default ON Enable connect cmd in net NODe
NETNode ON/OFF Enables the Net Node
NEWUser # allows you to set the initial user flags for all
new users (see EUuser command for the bit position meanings).
Thus you can choose to make new users limited (or I suppose
for a closed board, "bad users") until they identify them-
selves somehow.
NETTalk ON/OFF Default ON Enable Talk cmd in net NODe
NInfo Gives net NODe status
NNode This command takes you into the NODe as if you had
connected to it. When in the NODe you can issue sysop commands
if you need to by putting \ in front of them as you can in the
BBS. Particularly useful are the NODe, DEStination and REMove
commands when in the NODe to modify neighbor nodes and DEStina-
tion nodes.
NOBulls On/Off When on, no bulletins will be forwarded
during normal forwarding . Useful in clearing backlog of mes-
sages, particularly during earthquakes and hurricanes!
NODe SEnd Force known DESt transmission
" SAve Write net NODe Database to disk
" REStore Read net NODe Database from disk
" ADD call port qual [digis] Adds neighbor NODe
" REP call port qual [digis] Changes quality of
neighbor NODe
" DEL call port Deletes neighbor nodes & its DESts
NPorts portmask (see monitor ports) Defaults 0 Ports to
which nodes broadcast
2-27
NRCall callsign Sets net NODe callsign
NRid mnemonic Sets net NODe mnemonic identifier
NTtl # Default 64 Network time to live (max hops)
OLdbids On/Off. Once a message has been deleted from the
system its BID is also forgotten. Stale bulletins that have
passed through this system before and have already been deleted
can be automatically deleted if they come in again if OLdbids
is set to ON. Such stale bulletins coming through a second
time are detected by seeing an R: line that contains the
hierarchical call of this bbs (see HCAll command). This
won't solve all old BID problems but it should catch some very
aggravating situations.
OCInit # Default 6 Initial obsolescence count
OCMmin # Default 10 Minimum obsolescence to broadcast
OCM is settable for each port
PAClen - specifies maximum number of bytes that are put in a
packet before it is sent. Return also sends current packet.
PATh - displays information about given user callsign (same
as P on BBS)
PForward - displays information about given bbs callsign (same
as PF on BBS)
PMessage message# - This will print the given message. If you
have MAIL.BAK as a directory then the file MAIL.BAK/MSG###.DAT
will be printed. This will look nice. If you don't, then
MAIL/MSG###.DAT will be printed. This will be only the message
text. This command just makes it easier to print a message than
using the PRInt command.
POrts - Various information is given by this command.
Interesting to look at but may not be very useful. POrt can have
operand on/off. When off a port will not respond to the id
callsign (with any SSID) and will no longer digipeat or be
usable from the K NODe. BBS will not id unless you use it. Id
will be very short if it has to id (no text for the UI frame).If
you call a station with the port off this will still work
because incoming packets from that station don't include a con
nect packet.
The POrts command will take a single parameter (ON or OFF) in
addition to POrt port# ON/OFF. With just the single parameter,
all ports are turned on or off. Useful when you want to shut down
the system. PO OFF allows the current users to finish while
preventing further connects.
PPersist [port#] value (255 to 0)
PQuality [port#] # Default 192 Quality for nodes hear on port
2-28
PRInt Prints a file (on printer)
The argument is the pathname to the file to print. Make sure the
drive is ready before using this command. Make sure the
printer is ready (and exists) before using this command. Printing
is done to LPT1: via BIOS calls. This command will queue up to 25
print requests. Print with no operands lists the files in the
queue.
PROcesses This command displays for each active process its
number, program running for that process, an integer parameter
passed to the process (usually a port or channel number), the
least amount of memory left in the stack for the process (la-
beled SPmin), and the window used for output by the
process. Of particular importance is SPmin if the system does
bizarre things. If this number is less than say 100 the stack
is too small. If its a negative number, you have problems for
sure!
PRTmsgs on/off Enables printing of incoming messages as they
are received.
PWindow If given one parameter this command displays the name
and window used by the given process number. If two numbers are
given as parameters, the first is the process and the second
number is the window number to assign to that process.
QUIT After you use QUIT command (or CTRL/F4) the screen is
cleared. JK etc information is saved when you do a QUIT and
reloaded when bbs is started again.
RDir REMove specified directory
REMove DESt callsign Deletes DESt thru all neighbors
REName Oldpathname newpathname (must be on same drive)
REPlaces Reads bbs call/@bbs replace file
RESpons # Where # is the number of seconds to wait before
sending out a response. This is the T2 timer value in the ax.25
spec. If you set RES to 0 it will work the old way, always
sending out a response to each I frame received as soon as
possible. With non-zero values for RES, the responses are held,
the latest one replacing any one being held, until no I frames
have been received for the time given. It then sends out its
response. RESponstime can be set for individual ports.
REtries Displays or sets number of retries before disconnecting
RUn that allows you a DOS program with many limitations. For
those of you who have asked for some sort of DOS shell capabil-
ity you may recall I have said it can't be done. But some of you
said all you needed to do was output 8 bits to some port or
something like that. Well if you have something VERY SIMPLE and
VERY SMALL and very QUICK here is something that should work for
2-29
you. Note: You must follow all of the rules given here or very
strange things might happen for which I claim no responsibili-
ty. If you use the RUn command and it doesn't work it is clear-
ly you who have made the error! Here are the rules for programs
you might consider using with the run command (if you don't
understand these rules or aren't sure your program complies with
them, don't run it!):
1. Program must be small (I'd say under 10K, if you get a
message that says not enough memory, the program is too big
2. Program must be in default msys directory
3. Program must be fast. If runs much over 1 minute the
system will reboot. While it is running no packets will be
transmitted of any kind.
4. Programs must not use any of the "standard" pre-opened
files. Console I/O must be done using ROM BIOS only. If you open
any files, you must close them. If you get any memory, you must
free it. If you change anything in the computer you must put it
back for the most part.
5. You should write your programs in either assembly
language or C. Here is an example of a C program that is suitable
for framing (I mean execution using the RUn command):
#include <stdio.h>
#include <stdlib.h>
main(int argc, char *argv[])
{
int i;
char *path;
path = getenv("PATH");
for (i=0;i<argc;i++)
cprintf("argv[%d] is '%s'\n",i,argv[i]);
if (path) cprintf("Path = '%s'\n",path);
exit(1);/* You didn't expect this to do anything useful I hope*/
}
SEnd Parameters are an active channel number and the text of
the message to send. The text is prefixed with "MESSAGE FROM
SYSOP AT id-callsign". Use this to give helpful hints to users
you see that are in trouble with the commands they are trying to
use.
SLottime [port#] value (0 to 255)
SMTP Allows local access to the SMTP server (mainly for test
purposes). The data channel port number for SMTP transfers is not
correctly displayed. It does not affect operation and may be
fixed in a future release.
SNow If you have a CGA adapter and there is a lot of snow
during screen changes (particularly when changing display pages
with F1-F4) and you don't like it, set SNow to ON. Otherwise
leave it off and the display will run faster.
SOrt - (filename) Useful to sort your forward include files in
2-30
the /fwd directory so you can find things there more easily. Will
sort up to 200 eighty byte records.
STatus I put this one in for my own debugging (like some of
the other information displays). The current time is in
something like seconds since midnight of 1900. If any channels
are open you will learn very little by what you see, but state 5
is the normal connected state number. The next to last part of
this display is somewhat important. FREE is what is currently
free in the buffer used to get characters from the TNC (an
interrupt driven routine is used). LEAST is the smallest
amount of space that was available. If lease is small (say
less than 100) you've got some real problems. I don't think I've
ever seen it go below 3000. If it is small it means that
characters are coming from the TNC faster than they are being
processed. You might try a lower baud rate between the computer
and TNC but this probably won't really help the situation much.
Dispatches per second is how many times per second each proc-
ess was given control of the CPU. If this goes to zero I'd
worry a lot!Note: will only display information for real ports.
The STatus command may be given the operand RESET which
resets the least free values to 4096, the other counters (over-
run, framing and discarded) to zero. It also copies the lat
minute dispatches to min and max. Also added to the STatus com-
mand is display of the average number of disatches per second
since msys was started.
SUspendtrace # Where # is the number of free bytes in the
input buffers below which the monitoring is turned off. There is
1 buffer of 4096 bytes for each serial port (tnc). The amount
free at any time is given by the STatus command. When the free
space gets less than the SU value, F2 monitoring is turned off to
allow things to get processed more quickly. Default value is 2000
bytes. Again, F2 displays take a lot of time and when the system
gets behind it is a good idea to turn off the updating of the
display. When the free space in all the buffers goes above the SU
value tracing is turned back on (unless otherwise suspended).
This function can be effectively disabled by setting SU to 0 and
then it will work as before.
TABs ON/OFF (when on tabs are expanded on local display; when off
a tab shows up as ^I). Default is ON.
TACK sec Default 3 Transport ACK delay (responsetime)
TBdelay seconds Default 180 Transport busy delay
TElnet Takes an IP address and optional server number as
parameters.
Examples: TE [44.70.4.10]
te hsp (hsp would have to be defined in
MSYSHOST.NET)
TFrames - Port# send test frames on a given port
2-31
TImezone - Allows entry of your time zone. Set timezone GMT to
all caps to get lower case z on message time R: lines.
TNatime seconds Default 600 Transport no activity timeout time
TRetries # Default 3 Transport retries
TTimeout seconds Default 60 Transport timeout (Net FRACK)
TPorts Takes a port mask value as an argument. This number is
used the same way as in the other similar commands: each port
corresponds to a port (port 0 is the rightmost bit) and when the
bit is set to 1 for a given port that port is available for
TCP/IP use (particularly ARP broadcasts).
TXDelay [port#] value (0 to 255)
TXTail [port#] value (0 to 255) This should be used with
TNC-2 clone tncs (any tnc that uses hardware switches to set baud
rate going to radio) when on HF. Without this parameter the tnc
keys up on the transmitter before the complete packet is sent. Try
a value of 20 as a starting point.
TYpe Allows you to type a file. Use spacebar to stop/start
and a control Z or A to abort.
Trace25 Here the parameters are on or off and if you set
it on you will get more stuff that you can't understand faster
than you ever wanted to see it!
TraceIP Enables/disables trace of TCP/IP
Users filename - writes out all users info to file
Video You can change the monitor you want to use while the
system is running (using COLOR or MONOCHROME as a parameter).
I've got both connected to my systems here (at the same time)
so it is meaningful to switch back and forth on rare occasions
(like to see if it works). You probably ought to specify the one
you want to use in your MSYS.OPT file and not otherwise use this
command.
WAtch This command allows you to see all that occurs in
both directions for the channel you specify. Watching is turned
off when the channel is closed or you use the WAtch command a
second time for that same channel. The lines that go to the
screen are not labeled in any way, they are just sent to the
screen. If you WAtch more than one channel at a time it will
work but you may wonder which line came from which channel.
Using watch may have some side effects like resetting the
window being used by the process using the channel you have
selected. That's a "feature" of this program and will not be
corrected!
WBackgrnd This command requires two parameters to set back-
2-32
ground color: Window# and Color#. The color number should be
between 0 and 7.
WColors Gives list of color names and their numbers
WForegrnd This command requires two parameters to set fore-
ground color: Window# and Color#. The color number should be
between 0 and 15.
WPAge This command requires two parameters to set page
number: Window# and Page#. The page number must currently be
between 0 and 3.
WPEvery Specifies the number of days between sending out
WP information for users who haven't changed their informa-
tion. Default is 60 days.
WSize Specifies coordinates for specified window
This command requires 5 parameters. The first is the window#
being defined. The remaining parameters are two pairs of numbers
giving the upper left and lower right corners of the window. The
pair is column number (1,80) then row number (1 to 25).
Overlapping windows may produce amusing results. To specify
window 3 as being the entire screen the following command may be
used: WS 3 1 1 80 25
Window Use of this command is a good way to see what numbers
mean in the various window definition commands.
WHo Displays current users and messages (Remote SYSOP only)
WQupdate # Default 1 Worst quality DESt route to record
W? Use of this command is the easiest way to find out
which window is which!
Function key usage:
F1 through F4 select page to display (0 to 3 respectively)
F6 causes the following characters to the next return to be
treated as a command even if keyboard currently connected to some
other process (such as local bbs, etc.).
Ctrl/F2 suspends activity on the monitor screen. ^F2
restores normal operation. This is probably as close as being
able to
scroll the F2 screen that I will be implementing.
Ctrl/F4 terminates MSYS as if QUIT command was used
Ctrl/F5 is the same as the PRocesses command
Ctrl/F6 assigns keyboard to command processor
Most commands give information on their usage if you type command
name followed by a question mark. Example WS ?
2-33
MSYS BBS Commands
(c) Copyright 1990 by HUB COMPUTERS, INC.
A - Abort N - Enter name/qth
B - Bye P - Path to station
C - Conference R - Read message
D - Download S - Send Message
G - Search file T -Talk to sysop
H - Help W - What files
I - Information V - Version
J - Calls heard X - Expert-Mode
K - Kill message U - Current users
L - List Messages ?x- Info about command
M - Message of the day * - Comment line
The A (abort) command to the BBS. It can be used to abort output
from most bbs commands, like Download, List and Read.
The Bye command disconnects you from the BBS. Use it when you are
done!
The Conference command allows you to see what stations are
currently connected in conference mode. You can also enter the
conference or start one if none is currently active. When
stations are connected in conference mode anything typed by one
station is seen by all stations. All of the software to do this
is contained in this system. Any TNC can be used by stations
connected in conference mode with any computer or terminal. In
some respects the overhead is rather high in terms of channel
utilization since a packet typed by one station is sent to all of
the stations in conference mode individually and acknowledged by
each station individually. Another mode of conferencing will be
made available in the future to stations with KISS mode
compatible TNCs and IBM PCs (and possibly also C-64s). The
easiest way to see what conference mode does now is to enter it
using the C command. Even if you are the only station in the
conference you will get an idea of what you would see if there
were others. To terminate conference mode, simply disconnect from
the system. Several commands are possible when in Conference
mode. All begin with control/Z (^Z). Some have parameters. Here
is the list:
^ZA To add a DX station heard to the spotting list
(Add)
^ZB To disconnect from the system (Bye)
^ZD To display the DX spotting list (Display)
^ZP channel # To ask a station on BBS to join the conference
(Page)
^ZR To go back to BBS (Return)
^ZU To list the current stations on the BBS or
Conference Mode (Users)
3-34
The list users command gives output like this: WA8BXN (B/4)
which means that WA8BXN is using the BBS and is on channel number
4. The 4 would be used with the Page command that asks WA8BXN to
join the conference. The DX spotting list commands (^ZA and
^ZD) allow adding to or displaying the 10 line buffer that may be
used to report DX stations heard. The date,time and call of
station using the ^ZA command is automatically added to the
remaining characters on the ^ZA command line. Thus you might type
^ZA XY0ABC on 14.112 listening up 20 for example. The ^ZA command
both adds what you type at the bottom of the list and will also
broadcast it to all stations in conference. Note that most of
what you get in response to these commands is NOT seen by other
stations.
The Download command is used to read a file stored on the system.
The format of the command is D filename where filename is the
name of the file to download. To see what files are available for
downloading, use W or WN command. To get a file from a
subdirectory type d (directory name\filename)
The G command (for GREP, a Unix utility) allows you to search a
downloadable file for a specified string of characters, printing
all lines that contain the string of characters. Case is ignored
in the comparison. No wild cards (like ? or *) are recognized.
When you use this command you will be asked for a file name and
then a search string. For file name enter the name that you would
use if you were downloading the entire file. If you do not give a
file name, Database.0 will be assumed.
When the command is used the user will be asked for the file
name to search and then the search pattern. FILES\ will be
prefixed to the file name the user gives; thus downloadable files
may be pattern searched.
The G command is not available when the BBS is in limited
service mode.
The H command will give you a short description of the commands.
For more information about a particular command, type ?x where x
is the letter of the command.
The I command by itself gives hardware configuration of this
system. (the information displayed comes from HELP\INFO.DAT)
For example:
This system runs on an IBM PC type computer and is written in C.
It uses TNCs running in KISS mode which allows all the fancy
stuff it does.
Location is Port Huron, Michigan
Tnc's KPC-4
PK-232
Frequency Radio Power Antenna
145.03 MOCOM 70 60 W Isopole at 80 ft
145.09 TR-7400A 30 W Isopole at 30 ft
If you have any questions please leave a message or call
3-35
ID gives a list of the ports and digipeaters/gateways available.
The J command lists stations recently heard on the various ports
and stations that recently connected. Use the P command for path
to station that have connected at some time. For the following
commands the sponsor's callsign is given in {curly brackets}.
This is normally NOT the call you would use. This callsign is
given to help identify some of the "mystery" callsigns used for
nodes and digipeaters such as "MYDIGI".
JD command gives a list of the Digipeaters that have been heard
along with the date and time they were heard and the path to
them.
JK command gives a list of the KA nodes that have been heard
along with the date and time they were heard and the path to
them.
JG command gives a list of the Gateways that have been heard
along with the date and time they were heard and the path to
them.
JM command List other MSYS systems that have been heard.
JN command gives a list of the NET/ROM nodes that have been heard
along with the date and time they were heard, the real callsign
of the NODe and the path to them (most are direct).You can
specify a port number as an argument to limit the display to just
that port. For example, JK 1 would display the KA Nodes heard on
port1 only.
The K command is used to kill (delete) old messages from the
system. You can kill only those messages that are to or from your
station. The format of the command is K, a space, and then the
number of the message to delete. May use multiple message
numbers separated by a space. Example: k 123 6789 1123.
KM - To delete all messages TO you.
KF - Kill messages that have been forwarded (sysop only)
KT - Msg# to kill NTS traffic you are going to deliver.
K* - Kill messages marked with type * (sysop only)
K@ - kills all messages with given @BBS.(sysop only) only com
pares the leftmost part of the @BSS field (the normally visi-
ble part of a hierarchical address) instead of any part which
caused unexpected deletions.
Example: K@ arrl
The L command lists selected message headers. The following
format are available:
L - List messages since you last used the B command
LH - (sysop only) List held messages. A message
gets held if any of the R: lines contain the idcall
of the receiving BBS. This will catch forwarding
3-36
loops.
LM - List messages to or from you (List Mine)
LN - List all messages not yet read
LT - List NTS Traffic messages
LL # - List the last # messages
Example: LL 10 - Lists last 10 messages
LO - List messages older than date yymmdd given
LU - Lists unread messages to you
LY - Lists msgs that have been read but not deleted
LW - Lists msgs with type W (for weather)
L? - List mesgs that will not forward
L< callsign - List messages from callsign
Example: L< WA8BXN
L> callsign - List messages to callsign
Example: L> WA8BXN
L@ callsign - List messages being sent to BBS callsign
Example: L@ WA8BXN
L # - List messages >= given number
Example: L 827
L # # - List messages from # to #
Example: L 50 75
L"string" - Lists messages with given string in title
(case insensitive)
L'string' - Lists messages with given string in title
(case insensitive)
Examples: L'Pfb' L"ID's" l"Modem users"
L$ - List messages with type $
Example: L$
Note: Messages that are Private are shown only to Sender or
Addressee.
The M command may be used to display the Message of the day.
Normally this message (if not empty) is displayed when you
connect if you have selected Expert mode (?X for more info on
Expert mode). If you have selected Expert mode, using the M
command is the only way to see any Message of the day. If there
is no message of the day, you will simply get the next command
prompt. The message of the day will advise you of new features
and other important information.
N command can be used to register your name or QTH. You should
enter both of these. To enter your name type N yourname.
Example: N Mike
To enter your QTH, use the command NQ yourqth.
Example: NQ Kirtland, OH
3-37
To enter your ZIP or Postal Code, use NZ code.
Example: NZ 44026
To enter the primary BBS that you look for your mail on use NH
callsign.
Example: NH KB8CI
The P command can be used to find the path last used by a station
to connect to this system. The format is P callsign. Example: P
W1AW The information given comes from the station's use of the N
commands and information recorded by the system. Try the P
command with your own call to check the information the system
has about you.
The PF command can be used to find out if this system knows how
to forward mail to a particular BBS (what you would enter as @bbs
in the S command). The port number and call of the BBS to which
the message would be sent is displayed along with the VIA list
used for the connect. If Net/Rom or KA Nodes are used to connect
to the BBS to which the message would be forwarded to the fact is
noted but the details are not given. If this system does not
contain the requested BBS in its forward file you get a
message that the callsign is unknown. Example: PF WA8BXN
The R command is used to read messages that appear when you do a
L command. After the letter R and a space you should enter the
number of the message to read or multiple message numbers sepa-
rated by spaces. Example:r 725 1012 892.
RE - (for read export) This causes the given message(s) to
be displayed with a S command line, followed by title,
message text and then /EX in place of the normal way
messages are displayed. If this form of output is saved
using the output to file command [< filename] you can
easily export messages to an ascii file.L
RH - Gives complete forwarding information.
RN - msg# list
This is like the R command but no headers are printed,
just the message text. Good for marginal connections
when you otherwise know the message number you want to
read.
RM - Read unread messages addressed to you.
RP - Read Preview. It does a normal read operation but does
not mark the message as having been read so it will
show up if you do a LU command.
RS - Reads all mail for SYSOP.
Note that when you read mail for SYSOP it gets changed to mail
for Sysop so that it won't continue to show up as a new msg.
The S command format: Sx to call @bbs
Where x is message type (P=private)
To call is DEStination callsign (without - number)
@bbs is DEStination BBS (again without any - number) [OPTIONAL]
---> If @BBS part is omitted then if the station has entered a
Home BBS (NH command) that BBS will be used. Otherwise the to
station callsign will also be used as the @BBS.
3-38
Example: S W1XXX @W0YYY
You will next be asked for a title for the message. After this
you type the message, keeping all lines less than 80 characters.
When you are done with the message type ^Z or /EX on
a new line. If you type ^A in place of ^Z when you are done
typing a message, the message will not be stored.
Use SB to send bulletins, ST to send traffic, etc. All messages
sent to a specific callsign will be treated as if you used SP
(send private). To make messages to a specific callsign
readable by everyone use SB instead of just S! Or make it to a
non-callsign (such as all).
The T command (talk to sysop). When a bbs user types T you will
get the connect music and then have 60 seconds to type something
or they will be put back to the bbs. If you do type to them then
when you are done with your conversation and do ^Cd then they
will go back to the bbs. The keyboard call can still be used for
incoming connects; note that it is accessible to all stations,
even on closed bbs ports. Outcoing connects are the same as they
have always been. When an incoming keyboard connect occurs, you
will automatically be taken to the F1 screen
The U command gives the current users of the bbs plus the number
of active messages and users and what they are doing.
The Upload command To use it, the user must be authorized
(see user flags ). To do an upload, the user types UP on the BBS.
MSYS will then ask for the file name to be uploaded. If no file
name is entered, or the file exists (in the FILES directory) the
upload is terminated. If the filename is accepted, the user then
sends the ASCII file, ending with a line that contains only ^Z.
Once the transfer is started, it may be aborted by sending a line
with ^A.
The V command gives the version of this software and date and
time MSYS was started.
The W command lists the available files for downloading. The
formats:
W - Lists all files with dates & sizes
W (Directory) - Lists all files in a subdirectory under
files. The directory list provided includes the size of the files
listed.
The X command can be used to set or reset Expert status and also
to set the number of lines sent before pausing during an R
command. If no argument is given, X simply toggles and displays
the new Expert status. When Expert status is set, the initial
connect messages are replaced by a compatibility identifier line
(currently [MBL313]) and the command prompt is simply >.
If a number is given after X, this is the number of lines to
display for a R command before asking More? To continue
displaying the current message when More? is sent press return.
To abort the message, type N and then return. This facility has
been added to prevent a long message from scrolling off your
3-39
screen faster than you can read it. Experiment with different
values until you find one that pleases you. To not use this
facility, set the number of lines to zero.
Examples:
X 20 (pause after every 20 lines) X 0 (don't pause ever)
When you get More? in R cmd output(as a result of using X cmd to
set lines between pauses) you can type C for continue without
any more stops.
Commands: XF and XS. XF sets "fast" mode, XS sets "slow" mode.
Fast mode means that multiple lines are placed in packets for
some commands (like R and L). Slow mode means one line per
packet as it has been (the default). XF is faster for users
with good paths. XS is better for users with poor paths (or busy
channels!).
Putting * at the beginning of a line makes it a comment. It
also suppresses the next command prompt (but the system will be
waiting for another command). * is useful to answer the SYSOP if
you get a MESSAGE FROM SYSOP ...
< filename (sysop only) causes the commands found in the
given file to be processed as if they were typed from the key-
board. This may be used as a message import function if messages
are placed in a file. A sample of this is:
SB ALL @ ARRL < W1AW $XYZ27
Sample title
This is the text of the message. It is short.
/EX
You can of course have many messages in the file. When end of
file is found, input is taken again from the keyboard.
> filename and >> filename
Both of these commands cause output normally sent to the screen
to be also saved in the indicated file. Using just one > causes a
new file to be created (replacing any existing file by that
name). Use of two > before the filename causes output to be
appended to the end of the filename given (if it exists). To
terminate writing to the file, use either of these commands
without a file name. While output is being saved to a file, there
will be NO PROMPT FOR NEXT COMMAND.
\ To be used for sysop commands while in the BBS (see remote
sysop)
3-40
DATABASE HELP
(c) Copyright 1990 by HUB COMPUTERS, INC
Commands related to Database manipulation available on MSYS
MSYS allows BBS users to input information and search for
information in simple data bases. The names of the databases
are Database.0 through Database.999. These files are located
in the normal FILES directory, which can be accessed by the D
command (download) on the BBS.
These files can also be searched by the new G command on the
BBS. To use this command you enter the command G (with no
operands). You will then be asked for the file you want to
search. Simply pressing return at this point will select
Database.0 by default. You are then asked for the search string.
This is a set of characters that when found in lines of the file
cause those lines to be displayed. Case is ignored during the
search. If a selected line ends with \ then the following line(s)
are also selected for display.
Data is entered into a data base by sending a message to
MSYS with DBADD in the title. The text of the message will be
added to the indicated Database (Database.0) by default. A header
line is also inserted in the data base telling the station that
made the entry, along with the date and time. Here are some
examples:
SP MSYS {this is a S command issued to the BBS}
DBADD 3 {the message title, Database.3 to be used}
wind damage mentor Ohio \
large tree down at 615 & 20 \
reported by mentor pd \
no injuries
^Z {normal way to end message}
The text of this message would be added to Database.3. Now if you
search Database 3 for either wind damage or mentor for
example, you would get to see these lines, along with any other
lines that have wind damage or mentor in them.
Example of using search command:
G {BBS command to do search}
File search routine {Response from bbs}
Enter file name (or just press return for Database.0): Database.3
Enter search argument: Mentor
{lines from message above displayed}
> {BBS ready for next command}
Another example:
Assume a file had the following lines:
Mary had a little lamb
its fleece was white as snow, \
and every where that mary went
the lamb was sure to go.
3-41
It followed her to school one day
If you searched this for 'snow' you would get the following back:
its fleece was white as snow, \
and every where that Mary went
That's a brief outline of what can be done. Its simple yet very
flexible. Let me know of any applications you can think of for
these facilities. Particular Database numbers can be assigned to
different uses. Formats for information can be suggested for each
different Database.
3-42
Forward File Description
(c) Copyright 1990 by HUB COMPUTERS, INC.
NOTE: TO FORWARD BULLETINS YOU MUST SET UP MSYSBBS.DAT!
The MSYS forward file (MSYSFWD.DEF) is an ASCII file that
can be prepared with any program editor. The file consists of
groups of lines separated by a line beginning with at least 3
dashes. Each group of lines specifies what should be sent to a
given BBS along with other information.
The first line has the following format:
Position Content
-------- -------
1 The letter F
If you substitute R for F (F0 becomes R0 WA8BXN) then
it enables reverse forwarding request. P0 Forces a
reverse forward poll.
2 The port number to use (a single digit)
3 A blank
4 to N Callsign of BBS (with SSID)
optional:
N+1 A blank
N+2 to ? Via list of digipeaters
Examples:
F0 W1XX V W2XX,W1XX-1
F2 WA0XYZ-2
When no nodes are being used, this first line is used as if
it were a connect command to the desired system. When a NODe is
used, the Via digipeater list will have no effect.
If a NODe (KA NODe or NET/ROM) is to be used, the next set
of lines are a script of how to use the NODe(s). This script may
be up to 25 lines long. Its format will be described below.
Next comes a list of callsigns of BBS systems that should be
forwarded to the system given on the first line (the one
beginning with F). There is one call per line. No SSID should be
given. The callsign of the system given on the first line should
normally be given in this list.
Example forward file that doesn't use any nodes:
F0 W1XX
W1XX
W2ABC
W2XXX
----------
F0 W1XX V W1XYZ
W1XX
W2ABC
W2XXX
---------
4-43
W1XX V K1XXX,W1XXX
W1XX
W2ABC
W2XXX
--------------
F0 W8XXX-12
W8XXX
WA8XXX
K7XXX
------------
Note: Here we try three different paths to connect to W1XX. If we
get the messages forwarded the first way the other connections
will not be attempted.
F0 W1XX
!01-04,12,21-23 This will forward during the times indicated
W1XX (Use of this line is optional and must begin
W2ABC with !)
W2XXX
----------
In the list of callsigns given indicating what BBS's msgs can be
forwarded to a particular BBS if a second entry is typed on the
line then the second entry must match some part of a message
title to allow it to be forwarded. For example,
F1 W1XX
ARRL DX
----------
@ARRL will be forwarded only if DX appears in their title. Case
of letters is ignored in the comparison.
You can use * in the forward file. If you have NTS* then all msgs
with NTS as the first 3 characters of the @BBS will be forwarded.
For example:
F1 W1XX
NTS*
----------
* used alone is treated specially. Only messages that have been
on the BBS for more than about 2 days will be forwarded. This
gives time for them to be forwarded by other specified
connections.
IMPORTANT NOTE: In the forwarding file, use of * for the BBS
names cannot be the first call and the first bbs in the list of
bbs's that can be forwarded to through the given bbs MUST begin
with a letter.
4-44
Example:
F0 WA8BXN
* won't work
WA8BXN
-----------
F0 WA8BXN
44* won't work
WA8BXN
-----------
F0 WA8BXN
WA8BXN will work
*
44*
-----------
Note: That # is a wild card character. If you want to put #XYZ as
anentry in your forward file, you will have to use "#XYZ (the "
is an escape character that says the character that follows must
matchexactly and is not treated as a wildcard character as it
normally would be).
NODe Scripts:
The script consists of several sets of lines. The first line
begins with @ followed immediately by the call (and Via
digipeater list if needed) of the NODe to initially connect to.
The port that will be used is taken from the digit after the F on
the first card in the group. If the connection is established to
the NODe, the following sets of lines are used to talk to the
first NODe and possibly other nodes called through it.
Each set of lines for a given NODe begins with a line that
has a period in position one. The following characters on the
line are sent to the NODe as a command.
The next line in the set is optional and if used has # in
the first position. Following this is the number of seconds to
wait before abandoning use of this NODe. If this line is not
given then 60 seconds will be assumed.
The next line is required and begins with + in the first
position. The following characters are what is looked for in
lines that come from the NODe to indicate that connection has
been established to the station called (another NODe or the
desired BBS). An exact match to the characters given on the line
(including case) must be found somewhere in a line received to
continue.
Next come two lines beginning with ? in the first
position. These cards contain strings of characters that if
found anywhere in a line that comes from the NODe that the
connection was not made.
Thus after we issue the connect command (given on the line
beginning with .) one of three things can happen: a line from the
NODe that matches the +string is found and we continue with the
script or talk to the BBS, a line from the NODe matches a ?string
which means we give up on making the connection, or a time-out
occurs waiting for a match which again means we will give up the
4-45
connection.
Example script:
@ANOD (issue connect command to ANOD)
.C (issue connect to desired call)
#25 (time out after 25 seconds if no match)
+MADE (if MADE comes from NODe, continue)
?BUSY (if BUSY comes from NODe, abandon attempt)
?RETRIED (if RETRIED comes from NODe, abandon attempt)
These strings are useful for KA Nodes.
For a NET/ROM NODe the following would be useful:
+to
?Failure
?Busy
Here is another example of a complete forward file:
F1 W8XXX
W8XXX
W5XYZ
---------
F0 W4XYZ
@W7XXX
+to
?Busy
?Failure
.CW9XXX
#120
+MADE
?RETRIED
?BUSY
W4XYZ
W4XXX
-------
F1 W9XXX-2 VIA K9XXX-3,KA9XXX
W9XXX
W1XXX
W3XXX
K0XXX
----------
NOTE: The forward connect script for a given bbs is limited to
25 lines.
The file MSYSBBSB.DAT (YOU MUST HAVE THIS FILE TO FORWARD
BULLETINS!)
This file contains a set of bit position numbers
and corresponding BBS calls to which $ BID messages will be
sent. The format of the records is MAX BIT# IS 31 Bit# Callsign
(0-31)
An example file content is:
4-46
25 WB8JUI
26 KB8CI
27 WA8YWH
28 KQ8M
29 KB3X
(MSYSFWD.DEF): If you put a line beginning with $ and followed
by a file name (where BBS callsigns normally go) the given
file will be read at that point as more BBS calls.
Example:
F0 WA8BXN
WA8BXN
$BXN.DAT
ARRL
--------
In this example, the contents of BXN.DAT will be used for
more calls that can be forwarded through WA8BXN. Due to the
extra overhead of opening, reading, and closing the file, this
should only be used for more than just a few call signs.
MERge: (MUST DO THIS IN ORDER TO FORWARD MAIL)
This command reads MSYSFWD.DEF and copies it to
MSYS.FWD, expanding any include files ($filename). A file is also
produced, MSYS.BBS that is a sorted list of all possible BBS's
that can be forwarded to (including things like ARRL, 44*, etc).
This command is for 2 reasons: if there were any include files in
the MSYS.FWD files they did not get read when a pf command
was used and secondly, the new file is needed for hierarchical
forwarding. The leftmost part of the hierarchical route only is
used for forwarding and the contents of the file is needed for
efficient processing. Any changes you make to your forward file
must be done to MSYSFWD.DEF followed by use of the MERGE command
(IN THE BBS).
Call/@BBS replacement facility:
Create a file called MSYS.REP In it place lines with the
following format
OLDCALL OLD@BBS NEWCALL NEW@BBS
For example:
ALL ALLONT ALL NEOH (messages to ALL@ALLONT become
ALL@NEOH)
44* NTSOH @1 --- (messages to 44*@NTSOH become original
tocall@ ---)
NTS* * @2 @1 (messages coming in to NTS anything
get tocall and @bbs swapped)
*** IMPORTANT *** There can be no more than 100 lines in this
file! The algorithm goes like this: When a message comes in, a
check is made comparing the to call and @bbs of the msg with the
4-47
first two fields of the records in MSYS.REP. If a match is found
(wild cards are allowed in MSYS.REP) then the last 2 fields are
used to replace the tocall and @bbs of the message. @1 or @2 in
the last two fields in MSYS.REP have a special meaning. @1 means
the original to call and @2 means the original @bbs. Note that
wildcards are not expanded in these last 2 fields.
To support this facility a new command is also added:
REPlace.
If an argument of L is specified, the current replacement list is
displayed. If no argument is given, the current contents of
MSYS.REP are read and stored in memory. (This is done when MSYS
is started also). Use the REP command after you have edited
MSYS.REP to make the changes effective.
REVERSE FORWARDING :
MSYS can respond with messages to a connected BBS when it gives
F>. To use this facility, you must have a directory FWD that
contains files of the form callsign.REV. These files contain the
@BBS values that can be reverse forwarded to the given station.
So you may want to set up your forward file as follows:
[file MSYSFWD.DEF]:
F0 W8XYZ
$fwd/w8xyz.rev
--------
F0 K8XXX
$fwd/k8xxx.dat
--------
[file FWD\W8XYZ.REV]:
W8XYZ
ARRL
[file FWD\K8XXX.DAT]
K8XXX
K9XYZ
ARRL
With these example files, reverse forwarding would be enabled
for W8XYZ but not K8XXX. Recall that $ lines in the forward file
MSYSFWD.DEF cause the given file to be included at that point.
Also remember to be sure to use the MERGE command whenever you
make any changes to the forward files! Reverse forwarding of a
given message is not possible until there has been at least one
normal forwarding (either forced manually with the FOrward
command or at your forward time). The other half of reverse
forwarding (where MSYS would send F> when it is done forwarding
messages to a particular station) is enabled with the R in the
first line of the forwarding file (F0 becomes R0 WA8BXN). When
done forwarding MSYS just disconnects and does not send *** done.
Reverse forwarding checks if the bbs is currently connected. If
so MSYS will not request reverse forwarding.
Reverse forwarding poll (connects and requests reverse forwarding
even if you don't have anything yourself to forward) can be
4-48
implemented. Simple place P where you had R or F before. Thus F0
WA8BXN becomes P0 WA8BXN
SELECTIVE FORWARDING:
Selective forwarding by title contents is limited to ONE
selection per route. Thus if you have both ARRL LETTER and ARRL
PFB in your forward file for a given bbs, only bulletins
addressed @ARRL with LETTER in their titles will be forwarded. No
other bulletins with @ARRL (including those with PFB in their
titles) will be forwarded.
In addition to selective forwarding title comparisons, two
additional selection criteria may be specified: number of forward
attempts that must be made before using this path or maximum
message size to be forwarded using this path. Here some examples:
F0 N8XYZ
ARRL
NEOH DX
N8HTG 10
NEOH '15
OKIPN <3000
OKIPN '<I
-------
This set of lines will cause the following to happen - All @ARRL
messages will be forwarded. Messages with @NEOH will be forwarded
if they contain DX (upper and/or lower case) in the title.
Messages with @N8HTG will be forwarded if type is PN and there
have been at least 10 forwarding cycles with the message present
on the BBS. Messages with @NEOH will be forwarded if there is 15
somewhere in the title. The single quote mark is used to indicate
that the number following is not the number of attempts that must
be made to forward the message by other means. Messages with
@OKIPN that are less than 3000 bytes long will be forwarded. And
finally messages with @OKIPN and <I in the title (again, case
ignored) will be forwarded. The ability to not use a given
forwarding possibility until there have been the specified number
of forwarding attempts is included so that preference can be
given to favored paths while still allowing alternate paths to be
automatically used if the favored ones fail. Limits on message
size have been implemented for those who may forward to mini-BBS
systems with limited storage capacity.
TCP/IP FORWARDING:
TO forward to VE3GKM-4's TCP/IP mailbox the file would look like
the following.
F0 VE3GKM-4
@VE3GKM-4
.
+NET (may not be needed)
VE3GKM
(MORE @BBS CALLS)
---------------
4-49
SMTP FORWARDING:
Sample entry in MSYSFWD.DEF:
T 44 70 4 10 (DO NOT USE DOTS IN THE ADDRESS)
N8HSP
-----
Note that no port number is specified, it does an arp if needed.
Also note no digis (put them in the arp table if you have to have
them). No nodes. Just T and the IP address of the DEStination
station as shown. This corresponds to the line like F0 N8HSP.
Next comes the @BBS values to send to this station. There can be
more than one. Then the ------ that ends this entry. The same
forward file is used for both normal forwarding and tcpip
stuff. I have also made some changes to the SMTP command. After
you use it if you type PRompt it will prompt you for To:
(enter call@bbs) Reply- to: (just hit return if you like the
default given) Subject: (this is in the body of the text, not
the title) Then you enter your text and end with . (not ^Z) as
instructed. The result is a message that contains all the
fancy extra lines often found in tcp/ip messages.
Bulletins may be forwarded using SMTP. To do so you must
assign the smtp station an entry in the MSYSBBSB.DAT file like
you would for normal forwarding (don't use any ssids). Also add
the callsign of the station in the T line in the forward file
after the IP address. Example: T 44 70 4 15 W8XYZ
This should be done in the forwarding file for all SMTP
forwarding.
Bulletins are accepted from SMTP (a bulletin goes to a non-
callsign). Bids are made up based on your msg number and
callsign.
Heirarichical addresses are added to msgs that come in via SMTP.
NOTE: Since Bids are not supported in this implantation of SMTP,
bulletins can either be sent to or received from TCP\IP systems
but not both ways.
*** FORWARDING NOTES
Executing commands from within the forwarding file.
In the forwarding file at the beginning of a set of forwarding
lines (ie, at the beginning of the file or after a ------ line)
you can place any sysop command(s) by simply putting \ in
front of them.
The MSYS.BBS file contains a number after each "BBS" that the
system knows how to forward to. This is the ORing of all the BBS
Masks that can be used to forward the particular @BBS. This is
used to determine when bulletins have been sent to all
stations that should be getting them; when such a bulletin is
found, it gets its type changed from $ to # so then it is no
4-50
longer considered for forwarding.
Within the forward file a !timestring line may be placed before
any callsign to limit forwarding hours for that callsign (or
bulletin route). The first ! line as used before limits all times
for a bbs entry you forward to. The following ! lines remain in
effect until changed by another ! line. When you start another
bbs forward entry group the forwarding hour defaults to 0-23. At
this point I would like a little example of what this means, so
here it is (the comments and blank lines would NOT really be in
the forward file):
F0 WA8BXN {this is the beginning of a forward group}
!0-16,19-23 {don't initiate forwarding during hours of
5 or 6 P.M.}
WA8BXN {forward the @BBS any time we connect}
!0-16,22-23 {don't forward the following during early
evening hours}
NTSOH
OH
!1-4 {forward following only in early morning}
ARRL
ALLOH
-----
BID:
When a msg comes in to non-callsign without a bid a check is made
with generated BIDS of msg#_callsign and callsign_msg# to
eliminate duplicates.
Messages addressed to other than a what looks like a callsign
automatically get a BID generated for them.
Mail forwarded to BBSs identifying with either [MBL or [... - $]
get BID included in S command.
If a message is sent to MSYS @ idcall then the text is scanned
for a line with: ;;; forward thru callsign. If one is found, then
all unread mail for the originating station that is on the
bbs gets its @BBS changed to the specified callsign. This
includes the msg to MSYS which gets changed to be to the
originating station @ specified callsign. The title of the msg is
changed to indicate the number of msgs that were changed. All
changed are forced to be private. This command allows you or
your users to get any traffic for them on your bbs when the msg
is received routed to another bbs (assuming your system knows
how to forward it there). Additional features in msgs to MSYS
will be added later. EXAMPLE:
S MSYS @ WA8BXN
title doesn't matter
;;; forward thru N8HTG
^Z
Now any unread mail for me (since i sent the message) sitting on
WA8BXN BBS will get @BBS changed to N8HTG and thus forwarded to
4-51
N8HTG. This works for type N (unread) messages at the time this
message is received. Thus you would probably want to send a
message periodically.
FORWARDING DISPLAY:
As each of the BBS's to which msgs can be forwarded is scanned
for a given bbs you will see it. When a msg is being forwarded
you will see a line that gives its number and the to station and
@bbs of the message. In parenthesis you will see the entry in the
forward file that is being used. Thus if the forwarding file
contained.
F0 WA8BXN
WA8BXN
44*
---------
and there was a message for K8ZZZ@44123 being forwarded you would
see something like Fwding msg # 123 K8ZZZ@44123(44*).
DROPING @BBS:
Messages that arrive with @BBS of IDCALL get the @BBS field
changed to ---. This makes them distinctive
Messages sent to REQQTH, REQDIR and REQFIL are left private if
they arrive that way.
*** There can only be up to 300 different bbs names in the
forwarding file. To check this do a LCount on the file MSYS.BBS.
Wildcards (where you can use *) have been enhanced to allow more
than just using *. Based upon the recommendations of AA4RE and
others, the following have been implemented:
* Matches 0 or more occurances of anything
@ a..z, A..Z
# 0..9
+ a..z, A..Z, 0..9
? a..f, A..F, 0..9 (hex digits)
< a..z
> A..Z
$ =@#+?<>$ (any one of those characters, but I don't have
any guesses as to why this group was included)
= any one character
" the escape character: the next character must match exactly
( beginning of group. (abc) matches a b or c.
Examples: 9v1A2q matches #@#@#@
95=== matches anything 5 characters long beginning
with 95
(WK)6 matches anything starting with W6 or K6 (case
is important)
95### matches any 5 digi number beginning with 95
*** HF Forwarding regulations do not allow transmitting 3rd party
traffic unless there is a control operator present, the station
4-52
is under remote control, or a STA has been isssued. To aid in
compliance with the regulations, the ATtended command has been
added. When set to ON all forwarding is allowed. If off, ports
with radio speed of 300 will forward only those messages in which
the from call is the idcall (messages that you originate) or the
to station in the message is the station you would directly
connect to for forwarding. HF reverse forwarding is also inhibit-
ed if ATtended is OFF. Note that the regulations appear to allow
you to receive messages unattended. So if you don't have a STA
for HF turn AT OFF when you aren't there and remember to turn it
ON when you are. To be on the safe side, put ATtended OFF in your
MSYS.DO file should the system reboot when you aren't present.
**** BE SURE TO INCLUDE MSYS in your forward files for all other
stations you forward to so I can send bulletins about MSYS to all
of you. The list of MSYS operators keeps growing! ****
4-53
Hierarchical Forwarding and MSYS
There are several (new) features in MSYS that combined with
hierarchical forwarding should almost completely automate routing
of incoming messages. These features act at two separate times:
first when a message comes in and second during forwarding. First
let's review the way hierarchical forwarding works.
With hierarchical forwarding the @BBS field can contain more
than just the callsign of the BBS that is the DEStination of the
message. Routing information can also be placed in this field.
The @BBS field thus has the syntax of part1.part2.part3. ... .
When it is time to forward a message, the @BBS field is inspected
and the leftmost part that is found in the forwarding file is
used to forward the message.
Consider as an example @N8HTG.MI. If N8HTG is found in the
forwarding file then it is forwarded that way and the MI part is
ignored. On the other hand, if N8HTG is not found in the
forwarding file, then if MI is found in the forward file then it
is forwarded that way. If neither part is found in the forwarding
file, then the message will not go anywhere. Such messages will
show up (after at least one forwarding attempt after the last
time MSYS was started) if you do a L? command.
If all messages had both the actual callsign of the
DEStination BBS and the appropriate xx part in the @BBS field
then the forwarding file could be greatly shortened. You would
need to have the calls of the BBS stations in your state in the
forward file, along with each of the xx designators for the
remaining states. If there were say 50 BBS systems in your state
then perhaps 99 different entries would be sufficient in your
forward file (ignoring for the moment bulletin routes like ARRL).
Remember that I have often said that the limit of 300 different
calls in the forward file is more than sufficient!
Messages that are going to a BBS in your state get routed as
specified in your forwarding file; those going to another state
get routed to the BBS you have set up in the forwarding file to
get stuff for that state. What could be simpler? You could
include a few explicit calls for BBS systems in nearby states
that you route directly to, if you want to override the normal
path for messages going to that state if you so desire.
Now for the second part, the action taken by MSYS when a new
message arrives. When a message comes in, MSYS looks at the @BBS
field. If it is absent, then if the to callsign field contains
something that MSYS knows the routing for, the to field is copied
to the @BBS field. Otherwise the @BBS field is set to ===== and
the message won't go anywhere. It will show up as noted above in
a L? command.
How does MSYS determine if it knows the routing to a
particular callsign? It uses a file called BBSTONTS.BIN (new
beginning with version 1.04). This file contains BBS callsigns
and the states they belong in (this information comes from
several sources, more on this later).
Next MSYS inspects the @BBS field to determine if if knows
how to forward what is in the given @BBS field. If some part of
the possibly hierarchical specification is found in the
4-54
forwarding file, it is left alone and will be forwarded by that
matching specification. If no match is found in the forwarding
file, then the BBSTONTS.BIN file is searched to find some part of
the given @BBS field. If a match is found, the corresponding
NTSxx is appended to the existing @BBS field.
Thus MSYS will attempt to lookup the right state to send the
message to. Assuming the state is found, then forwarding will
take place as described above (see the N8HTG.MI example). If no
part of the @BBS field can be recognized, then the message will
not be sent out, but will show up when you do a L? command as
described above.
The BBSTONTS.BIN look up will also handle zip codes given in
the @BBS field, making @12345 into @12345.xx as is appropriate.
Thus far we have examined what happens when to automate
forwarding. In the event the proper routing cannot be determined
by MSYS then you will have to use the sysop EM (edit message)
command to manually add the appropriate .xx designation, assuming
you can guess it somehow. If you are lucky, the originator put
useful information in the title of the message or may have hidden
it in the text of the message. Maybe the callbook will be of some
use to you. Or maybe you can just force it in the opposite
direction from which it arrived.
The next question that should be in your mind is how to
create the BBSTONTS.BIN file. This file contains binary data and
cannot easily be created with a text editor. A utility function
called INDEXNTS (function 14 in MUTIL.EXE) has been provided to
create this file. INDEXNTS takes as its input a file called
BBSTONTS.DAT and produces as output BBSTONTS.BIN.
How do you create BBSTONTS.DAT? You run a function called
BBSTONTS (function 13 in MUTIL) which takes as its input
BBSLIST.DAT.
BBSLIST.DAT is created and/or updated using data from
message headers that have passed through your system and/or W9ZRX
bbs lists. Function 10 of MUTIL is used to use messages as input;
function 11 uses W9ZRX lists as input.
4-55
Lets look at a picture of these files and programs:
+---------------+
| Message files |
| from MAIL.BAK |
+---------------+
|
|
|
V
MUTIL function 10
|
|
|
+-------------+
| BBSLIST.DAT |
| file |
+-------------+
|
|
MUTIL function 13 <--- Other standard files:
| STATES.DAT
| ZIPCODES.DAT
V ROUTES.DAT
|
|
+-------------+
| BBSTONTS.DAT|
| file |
+-------------+
|
|
MUTIL function 14
|
|
V
|
|
+-------------+
| BBSTONTS.BIN|
| file |
+-------------+
4-56
MSYS Network NODe Introduction
(c) Copyright 1990 by HUB COMPUTERS, INC.
With version 1.06 is the ability to interface a variety of
the functions previously found in MSYS into networks built using
any combination of other MSYS systems, TheNet nodes, G8BPQ Nodes
and Net/Rom nodes. This is last "major" enhancement planned for
MSYS at this time. The following few releases are expected to
come at about one or two month intervals and will add small new
capabilities, correct errors and improve efficiency. The network
NODe support in MSYS is by no means complete or perfect at this
time but it does seem to be usable.
Some basic information concerning the implementation of the
MSYS NODe interface will help in making decisions related to
configuration. Two terms must be understood by the system
administrator (SYSOP). These terms are neighbor NODe and
DEStination NODe. A neighbor NODe is a compatible NODe to which
there is a direct connection path. Currently MSYS does not
support use of digipeaters in the path to neighbor nodes. Normal
AX.25 connections are made to neighbor nodes. The data exchanged
by these connections consists of a mixture of supervisory and
data frames that together support the network operation.
DEStination nodes are also network nodes and are the nodes
listed when one does a Nodes command. DEStination nodes are
nodes that can be reached through the network either directly if
they are also neighbor nodes, or indirectly through some neighbor
NODe.
Routing of frames in the network is conceptually fairly
simple, handling all the details is not! Each NODe does a "Nodes
Broadcast" periodically (usually once an hour) which is a list of
nodes that it know how to route data to. This may be due to
directly hearing a neighbor NODe or by hearing the nodes list
from neighbor NODe that claims to have a route to each NODe it
lists in its NODe broadcast.
Information from the nodes broadcast is maintained by MSYS.
When it receives a frame that is not for itself, MSYS looks to
see which neighbor NODe can handle the DEStination indicated in
the frame and simply passes the frame on to some neighbor NODe.
Data frames while they are inside the network as handled as
what are termed "datagrams". What this means is that during a
conversation between two end users there is no guarantee by the
network that the data frames will always go by the same path or
that they will make it through the network. Depending on
conditions in the network the path taken by frames can change and
at times frames will be arbitrarily discarded.
This does not lead to chaos because the end nodes (the ones
the users connect to) are responsible for error free end to end
services. While the AX.25 protocol makes sure that transmission
of frame between any two nodes is error free the network protocol
establishes error free operation between users.
MSYS network NODe functions include both the routing of
frames within the network as well as the uplink/link logic to
support the error free end to end services. Additionally, the
TCP/IP servers can make use of the network as an alternative to
the existing IP routing facilities.
5-57
Connections from the network may be made directly to the BBS
through the enhanced NODe command set. At this time forwarding
directly into the network is not supported but should be added in
a future release.
An attempt has been made to make the MSYS network NODe user
friendly while still retaining compatibility with other network
nodes. To this end there is a help command and headings on output
generated by various information listing commands. Since MSYS is
generally run at an attended site, a Talk command is available to
allow users to talk to the sysop directly from the network.
To add all these enhancements, MSYS has grown a bit. It is
now suggested that you have 640K ram available (more won't be of
any use). There are also several new commands/options. To not
further delay distribution of version 1.06, the documentation for
all the changes is contained in this update file rather than
being integrated into the existing documentation; the integration
should be done in the next release.
Basic Decisions About the Network NODe
The really big question is should you enable the network
NODe functions of MSYS? Fortunately, you have more options than
just yes or no! So perhaps the question should be reworded as
should you run the NODe in full feature, fully automated mode?
The answer for most stations will be NO. The answer in your
particular case will depend on the capabilities of your station
and the locations of other compatible nodes. If you run a high
profile station already (wide coverage as a digi/K-NODe) and have
compatible network nodes at reasonable distances from you (maybe
at least 30 miles away), then you may fill a need by running with
everything enabled. On the other hand, if the only way you can
talk to anything is through a digipeater (even when the batteries
in your ht are fully charged) and on a hazy day you can still see
the antennas of at least five network nodes, all still forwarding
the same frame they received 2 years ago, then may I suggest you
run in a very controlled minimal mode. Make friends, not enemies
through these latest enhancements to MSYS!
5-58
Network NODe Quickstart
This section tells the minimal things you must do to get the
NODe up and running in some (probably not optimal) fashion.
You MUST define your network NODe callsign using the
NRC
command. If you are also active in TCP/IP you should set NRCall
and MYTcpcall to be the same thing.
You MUST use the NPorts command to enable the ports that you
want to be able to access the NODe. For example, NP 3 would allow
access to the NODe on ports 0 and 1 but no others.
You SHOULD define your network NODe mnemonic identifier
using the NRI command.
You MUST enable the NODe using the NETNODE ON command.
You should probably turn AUTONode and AUTODESt ON and set
OCM to 3.
This should put your system into full service automatic mode as
far as the network NODe is concerned. The probably will not be
the way you will want to run but its a starting point.
5-59
Manual Operations on the Network NODe Database
To REMove a DEStination NODe completely, use
REMove DEStination nodecall
To REMove a DEStination for a given neighbor NODe, use
DESt DELete DEStcall neighborcall
To REMove a neighbor NODe (and all the DEStination routes
through
this neighbor NODe), use
NODe DELete nodecall port#
To add a new neighbor NODe, use
NODe ADD nodecall port# quality [digicall1 ... digicall8]
Note: The mnemonic identifier for the neighbor NODe will be
obtained from the first nodes broadcast heard from the NODe. Use
of the digipeater calls is optional. Although you can specify up
to 8 digipeaters, rarely will more than 1 or 2 be practical to
use.
To add a new DEStination for a given neighbor NODe, use
DESt ADD [mnemonic:]DESt-call neighbor-call obs# quality#
Notes: The neighbor NODe callsign must be defined before any
DEStinations can be added for it.
mnemonic for the DEStination is optional.
obs# is the obsolescence count, 0 locks the DESt in for
the NODe.
To change the quality of an existing neighbor NODe, use
NODe REPlace callsign port# new-quality [digi1 ... digi8]
To change the obsolescence count and quality of a DEStination
through some neighbor NODe, use
DESt REPlace DEStcall neighborcall newobs# newquality
5-60
How I Run My Network NODe
I run my netnode in a moderate mode here that is somewhere
between fully automatic and low profile. Here is some basic info
that should help you understand my configuration:
Computer is an old original IBM PC 4.77 MHz clock 640 K ram, two
10 M hard drives, 4 serial cards and a printer card.
Port Freq
0 223.7 High profile (150 W, beam at 80 ft. aimed west)
1 145.01 Quite high profile (200 W omni ant at 90 ft.)
2 145.05 Low profile (10 W omni ant at 60 ft.)
3 80 M
4 40 M
5 20 M
6 serial connection to another computer
Nearby existing netrom nodes:
Port Call Distance
0 K8EIW-9 15 (Miles)
1 K8EIW-7 15
1 K8EIW-1 45
1 W8QLY 75
1 W3LIF 80
2 KB8AST-1 25
Nearby NET.EXE stations using netrom interface:
Port Call Distance
1 N8HSP-4 10
1 WB8LYJ-4 15
All of these stations are usually reliable connections. Other
netrom nodes are usually heard but are not always reliable.
During band openings many more are heard, some are reliable
during the band opening.
Here are the network NODe related parameters I have in my MSYS.DO
file:
OCM 3 Transmit DESt nodes heard that have
obsolescence counts 3 to 6
NRI 460406 Right 3 bytes of my IP address [44.70.4.6]
expressed in hex (quite useful this way)
NRC WA8BXN-2 Callsign net NODe responds to, should be
the same as TCP/IP callsign (MYTcpcall)
NPorts $47 Network NODe uses ports 0,1,2 and 6 only
PQuality 100 Default port quality 100. A low value
assigned to nodes not manually entered
that connect to mine
NODe REStore Read saved NODe file when MSYS starts
AUTONode OFF Do NOT record NODe broadcasts from nodes
not already in neighbor lists. This
means that new nodes heard (during band
openings for example) will not be
automatically added, unless they do
actually connect to my NODe.
5-61
AUTODESt ON DEStination NODe broadcasts (from nodes
already in my neighbor table) will be
recorded.
NETNODE ON Enable network NODe
Here is the output I get from the JN sysop command (or R command
in the NODe):
Port Neighbor NODe Call Quality DESts Heard Digipeater(s)
1 AKR:K8EIW-1 179 66 23:43
1 CLE1:K8EIW-7 180 67 23:41
0 CLE220:K8EIW-9 180 67 23:34
2 PRYTWP:KB8AST-1 192 2 23:25
1 CLEIP:N8HSP-4 192 1 23:42
1 MERCER:W3LIF 180 6 23:44
1 YNG:W8QLY 180 7 23:36
1 PVLIP:WB8LYJ-4 192 1 22:46
The general philosophy I am using is that I only want to attempt
to connect to network nodes that I have a good path to. These are
also the nodes that I broadcast myself (and the DEStinations they
claim they can handle). I have manually entered these nodes into
my neighbor NODe table (using NODe ADD). I see little sense in
saying that I can really connect to a NODe I hear once because a
meteor hit at the right time! This method does not particularly
limit the number of DEStination nodes my NODe knows about because
the nearby nodes claim they can handle everything they hear. I
just let the nearby nodes worry about finding routes to
everything they claim to hear.
My system serves as a link from the one isolated NODe on
145.05 LAN frequency to the nodes on 145.01 which give access to
the Ohio 4800 Baud UHF backbone frequency. I also serve as an IP
switch to and from the network. I have adjusted the neighbor NODe
qualities to favor nodes (primarily TCP/IP stations) to which I
am a good route. I have set most of the normal netrom nodes to a
lower quality value so that they will talk directly to each other
most of the time rather than trying to go thru my NODe. Should
they be unable to connect directly to each other, they will still
be able to go thru my system.
If you want to run very low profile in terms of getting used
as a network NODe, leave the default of 10 set for OCMin. This
means that your NODe broadcasts will only send out your own call.
This will get the network to recognize you but not make it think
you are a good relay to anything. Keep AUTOD ON so that your
system will know how to reach nodes in the network. Its probably
a good idea to set AUTON OFF and manually add the calls of the
best nearby nodes you can connect to (one is all you need).
If you are totally confused about the network operations, try to
consult with who ever runs your local NODe(s). Most of the
parameters you have they have (with some changes in their names).
5-62
Miscellaneous Comments on Network NODe
If you are low on SSIDs, you might consider the following.
Set the IDCALL to your callsign without any SSID. Do not define a
BBS, Keyboard, or K NODe callsign. Pick an SSID and use you
callsign with it and set as the value for MYTcpcall, NRCall and
FORWARD call.
To get to your BBS the network NODe BBS command can be used.
To talk to your keyboard the BBS T command or network NODe T
command can be used. If you want to make outgoing calls you will
have to define a keyboard callsign.
Should you use the network NODe to route TCP/IP frames? I
would say only if you have to! The normal IP routing is better
than using the network NODe but in those cases where using the
network is the only way to reach some distant IP station then do
use the network.
Network node connects are allowed only on those ports
enabled by NP command.
5-63
NET NODe Parameters Summary
Default
PQuality [port#] # 192 Quality for nodes hear on port
BInterval seconds 3600 Nodes Broadcast interval
OCMmin # 10 Minimum obsolescence to broadcast
OCInit # 6 Initial obsolescence count
WQupdate # 1 Worst quality DESt route to record
NTtl # 64 Network time to live (max hops)
TTimeout seconds 60 Transport timeout (Net FRACK)
TRetries # 3 Transport retries
TACK sec 3 Transport ACK delay (responsetime)
TBdelay seconds 180 Transport busy delay
NDWindow # 4 Net default window size (frames)
NETCon ON/OFF ON Enable connect cmd in net NODe
NETBbs ON/OFF ON Enable BBS cmd in net NODe
NETTalk ON/OFF ON Enable Talk cmd in net NODe
AUTODESt ON/OFF OFF Add new DESts for known neighbors
AUTONode ON/OFF OFF Add new neighbors heard
NODe SEnd Force known DESt transmission
" SAve Write net NODe Database to disk
" REStore Read net NODe Database from disk
" ADD call port qual [digis] Adds neighbor NODe
" REP call port qual [digis] Changes quality of
neighbor NODe
" DEL call port Deletes neighbor nodes & its DESts
DESt ADD [id:]call neighbor obs quality Adds new
DEStination
" REP callsign neighbor obs quality Changes obs & qual
" DEL callsign neighbor Deletes DESt thru given neighbor
REMove DESt callsign Deletes DESt thru all neighbors
NInfo Gives net NODe status
NRCall callsign Sets net NODe callsign
NRid mnemonic Sets net NODe mnemonic identifier
NPorts portmask 0 Ports to which nodes broadcast
TNatime seconds 600 Transport no activity timeout time
C BBS or C bbscallsign act like BBS command taking you to the
bbs. You also now get a connected to message when any of these
commands.
5-64
MSYS General information file #
(c) Copyright 1990 by HUB COMPUTERS, INC.
*** MEMORY MANAGEMENT:
Buffer space for logical channels is allocated when the channel
is allocated (and released when the channel is released) This
will cause the MEM command to show more available memory. Its is
little deceptive though because when all the channels are in use
the same amount of memory will be used as before.
*** Remote SYSOP:
\Sysop command:
It gets you into remote sysop mode which allows you to use most
of the sysop commands through the bbs. The command must be
typed exactly as shown: backslash, Capital S and lower case
ysop and then return.You will then get a line like
Usage stats: Users=4 Msgs rcvd=10 Msgs sent=5 Max=8
To this you must reply (there will be no prompt) four characters
corresponding to the numbers typed in order of characters found
in the file MSYS.RMT (case is important). For example, if your
MSYS.RMT file contained MSYS is the greatest! then you would
type <space> e i t which are the corresponding characters (the
first character is numbered 0). Thus you would type eit (Don't
forget to count the spaces) You should now get a prompt cmd:
If you are connected via radio, you issue \Sysop command on
bbs to verify sysop authority (enter 4 letters) You then get the
next bbs prompt (if you give correct letters or not). If you have
given the correct reply then you may issue any sysop command
by starting the line with \ (while still in the bbs). So when
on the bbs from the local keyboard, you can now type something
like \em 1234 and you will be able to edit message 1234 without
having to leave the bbs. As a remote sysop, you retain sysop
status until you disconnect once you give the right 4 letters.
To get a list of available commands, type h. Most of the
commands available duplicate those found normally as sysop
commands. An added command, who, gives a list of who is on the
system and is the same as the new U command in the bbs.
NOTE: \Sysop is not requried from local keboard.
Make sure you mark yourself a remote susop, even if you won't
be one.(User flag $10)
*** MSYS.DO:
A command file may contain the same things you could normally
type as commands. To execute a command file, type DO followed by
the command file name.
Example: DO cmds.dat
5-65
When the system starts it automatically tries to DO a command.
*** MONxx:
MONCC ON/OFF - enables/disables monitoring of TCP/IP packets
MONCF ON/OFF - enables/disables monitoring of NETROM packets
*** LINKED:
A line of the form *** LINKED to callsign now recognized as a
connection by the given callsign. This occurs with some
versions of RLI systems when a user uses the C command on the RLI
system to connect to the MSYS BBS. *** LINKED to callsign
requires sysop verification if sysop call is used.
*** KEYBOARD:
When someone connects to your keyboard answer call you will get
two musical tune to alert you to the connect.
Any stations connecting to your keyboard call when you are
already connected to another station will get a busy. The actual
number of connects allowed before busy is given by the new sysop
command MCon. MCon 1, for example, only allows an incoming call
to the keyboard to be answered if there are no other keyboard
connections. MCon 0 prevents all incoming keyboard requests (they
get busy). MCon N will allow N connections to the keyboard until
busy is returned.
When you type past column 72 you will get a beep for each
character. Keep those lines less than 80 characters!
When a station attempts to connect to your keyboard via the
several ways possible but is sent a busy the bell will also beep
to alert you to this.
*** Packet size:
Data in packets is limited to 256 bytes. Larger amounts of data
in a single packet will be discarded without causing the system
to crash.
*** STACK requirement:
The stack space needed by the forward process has increased. The
following line can be put in MSYS.OPT (This may not be
necessary):
STACK FORWARD 8000
A smaller value (maybe 7000) might work. Try it if you want. If
the system randomly crashed, make it 8000.
Modifications have been made to the R command to list path
information with R: lines using either @:bbscall or msg#@bbs
format.
5-66
*** BBS Commands:
ST Command will not add bid to messages.
Download requires that the first character of the file name be
alphanumeric (no more ..)
*** @BBS:
Automatic generation of @BBS field for S command in BBS: If the S
command contains an @BBS entry it is left untouched. If there is
no @BBS as a parameter for the S command, the following happens.
If the to station is found in the user file then the home bbs of
that station is substituted for the given @BBS. If the to station
is not a known user then the to station callsign is placed in the
@BBS field.
Any messages entered into the system with no @BBS that don't get
a @BBS from the user file will have ==== for the @BBS. Only
messages with second type character of N will cause the user file
to be searched for @BBS. Thus bulletins will never get their to
call sign (typically ALL) looked up in the user file.
In the bbs, if a S command has an ssid in the @BBS filed it is
removed in the leftmost part of the hierarchical address. Thus S
W1XYZ @ K1XXX-5 is taken as S W1XYZ @ K1XXX.
*** MSYSTNC.#:
If you use any tnc set up files be warned that the program waits
1 sec after each line from the file is sent to the tnc to give it
time to think about it.
NOTE:
AEA tncs made after Jan 89 can probably be treated like KPC-x
tncs to get them into kiss mode. It should no longer be necessary
to have a special tnc file for them (but if it doesn't work
without it,it is suggested that the tnc file be used).
*** MAIL BEACON:
Messages to your IDCALL and to SYSOP are not displayed in the
MAIL FOR beacon. You will see them on the screen.
*** LOG:
Msgs sent, forwarded, and killed get logged to MSYS.LOG.
A new log file record is being generated. It is identical to the
BBS record except it has BYE in place of BBS. It is generated
when a user exits the bbs by any means (disconnect, timeout, B
cmd).
*** LOCKUPS:
If the system hangs an attempt is made to reboot. Thus you should
5-67
make sure you don't have a diskette in A: and that you have an
appropriate autoexec file set up.
*** CHANNEL NUMBERS:
The channel numbers use a rotational assignment rather than
always starting from 0
*** USER BIT SETTINGS:
$01 - Expert user
$02 - BBS
$04 - Disconnect immediately
$08 - Limited BBS
$10 - Remote sysop status
$80 - Prevents use of the S command. Users so marked can only
read messages.
$200 - Authorizes use of the Upload command in the bbs.
NOTE: These settings may be added togeather.
When the BBS is in limited mode and the H cmd is used, the file
printed is HELP/HLIMITED.HLP in place of HELP/HELP.HLP
When a user logs on to the bbs for the first time (or after a
long while (see DELUDays), the file HELP/NEWUser.HLP will be sent
to that new user (if it exists) on the first connect (only).
*** #:
Command lines beginning with # on the BBS are ignored (they
sometimes come from KA Nodes).
*** MAX channels AND PORTS:
Maximum for MAXCHANS is 50 (MSYS.OPT)
Maximum number of ports is 7 (numbered 0 to 6)
MSYS supports all ints (0-7) for serial ports. I suggest the use
of ints 2,3,4 & 7 on pc class computers and 3,4,5 & 7 on at class
and above computers. Use of 01 & 6 are not recommended but are
supported in the code. Due to the use of these interrupts by
other hardware devices/functions results will generally be bad!
I really think that the MS-400 (and similar) shared inter-
rupt serial interface boards should work properly. Thanks to
WB8CQV for loaning me one to test with!
*** END OF LINE BELLS:
When you type past column 72 you will get a beep for each
character. Keep those lines less than 80 characters!
*** WP SERVER:
5-68
Generation of messages to the white pages master server is
included in MSYS. This sends the information users give in the N,
NH, NZ and NQ commands to the WP server when it is changed (or
initially given) as well as periodically. Note that MSYS does not
respond to messages to WP but merely passes them on without
modification. WP messages are NOT generated for users with any of
the following characteristics: locked, homebbs of ?, bbs system,
and/or baduser.
*** FRACK
All IP (and IP thru netrom) frame retry timing uses a dynamic
FRACK value now.
*** TESTING:
You can connect two MSYS systems together through their serial
ports by the use of a NULL MODEM.
You can also connect a loopback by connecting pins 2 and 3 on
the same serial port. This will allow you to see what the system
is doing without being on the air.
*** Automatic back-up of msys.msg and msys.usr has been removed.
If you still want to do these backups once a day, put appropriate
copy statements in your msyshcl.do file.
*** TCP/IP connects are rejected if not enough memory or MCON
exceeded.
*** SMTP
The \+\ filename include capability that is currently in the BBS
S command to also be usable in SMTP with the PRompt command. Both
of these are available only from the local keyboard.
Typing other than Y N C A or RETURN in response to More? in the
BBS is taken as a new command.
Title of messages truncated after 37 characters.
*** MAIL.BAK
To reduce disk read/write delays when a message is received and
copied to the MAIL.BAK directory, subdirectories are automatical-
ly created in the MAIL.BAK directory. 100 messages are backed up
in each directory. This can substantially reduce the time it
takes to make the backup copy of incoming messages because much
smaller number of file names must be looked at to add the new
file name to the directory. The created subdirectory names are of
the form MSGxxx where xxx is the message number divided by 100.
Thus in MSG025 messages 2500 to 2599 would be found. The MUTIL
msg restore function has been modified to understand these
changes and ask for the main mail.bak directory name. This
addition was needed for those times the mail.bak directory name
is changed by the set command.
5-69
*** RS-232 connection to tncs running Net/Rom and TheNet.
Ports connected to such tncs should use > as the first character
in the name given in the port statement in MSYS.OPT.
To connect the computer to a single tnc per computer port, a
straight thru cable is used (with a minimum of pins 2,3 and 7).
At the tnc end, pins 10 and 23 must be jumpered. DO NOT CONNECT
PINS 10 or 23 at the computer end!
In a multiple tnc connection using the standard diode matrix
interconnect, the computer may be connected if you reverse pins
2&3 and pins 5&20 at the computer connection.
Using MSYS with a Net/Rom or TheNet equipped tnc can have great
advantages on a backbone system. The tnc handles traffic on the
backbone not going to/from the MSYS system without any load
being placed on the MSYS computer.
Forwarding may be accomplished by connecting to the RS-232 con-
nected tnc using normal script files. You can also beacon thru
the tnc using it as a digipeater. Many other interesting possi-
bilities also exist. Have fun!
*** Type of a message (the "TR" field)
The algorithm uses 3 pieces of information to determine the
appropriate TR to assign: the destination "callsign", the @"bbs",
and the character after the S in the Send command.
The to "callsign" is classified as one of the following:
0 - Looks like a real callsign
1 - A zipcode (5 digits)
2 - something else (like ALL, for example)
The @"bbs" is classified as one of the following:
0 - Looks like a real callsign
1 - none specified
2 - call of this bbs
3 - something else
The character after the S in the s command is classified as:
0 - B (as in SB for send bulletin)
1 - P (as in SP for send private)
2 - T (as in ST for send traffic)
3 - none (as in just plain S)
4 - something else (SW for send weather bulletin, for
example)
The following message types are generated:
BN For bulletins going to a specific bbs - these are
forwarded to a single station that handles that bbs.
PN For private messages
TN For NTS traffic
xN For Sx where x is an "something else"
5-70
N For individual non-private messages.
B$ For bulletins going with @route (like ARRL)
x$ For bulletins sent with Sx (x is "something else")
P$ For private bulletins going with @route
Note: [P]N below means that the type will be N is MAKEPRIVATE is
off,PN if MAKEPRIVATE is ON (default).
TR Values Assigned to Messages
For messages going to Callsigns:
Character after S -> B P T None x (Other)
@BBS type: --- --- --- ---- ---------
callsign BN PN TN [P]N xN
no bbs given B$ PN TN [P]N x$
this bbs B$ PN TN [P]N x$
something else B$ PN TN [P]N x$
For messages going to ZIP Codes:
Character after S -> B P T None x (Other)
@BBS type: --- --- --- ---- ---------
callsign BN PN TN TN xN
no bbs given B$ P$ TN TN x$
this bbs B$ P$ TN TN x$
something else B$ P$ TN TN x$
For messages going to SOMETHING ELSE:
Character after S -> B P T None x (Other)
@BBS type: --- --- --- ---- ---------
callsign BN PN TN BN xN
no bbs given B$ P$ TN B$ x$
this bbs B$ BN TN B$ x$
something else B$ P$ TN B$ x$
Messages with second character of type N are forwarded to one
place (and then killed if AUTOKill is ON, the N is changed to F
otherwise). Messages with second character of type $ are flooded
to all stations that get the specified @BBS. When sent to all
such BBS's, the second character gets changed to #.
Messages that come in with an R: line that contains the call
(actually HCALL) of this bbs are automatically held. The R: line
scan is terminated by the first non-R: line found in the message.
Bulletins that arrive with a bid on the S command line are re-
jected if their bid already exists in the bid file. Bulletins are
identified as those messages that arrived via the SB command or S
non-call.
All messages other than bulletins are always received (never
5-71
rejected). If a message identifier ($string) exists on the S
command line AND ACceptmid is ON, it is used. In all other cases,
a message identifier is generated internally for all non-bulle-
tins using the bbs call and message number from the last R: line
scanned. If the message identifier is found in the bid file and
the message was not held as noted above, the message is not saved
(but it is acknowleged as being recieved entirely by sending the
> prompt when the ^Z is received).
The processing of internal message identifiers is not indicated
in the system identification line [MSYS-XXXX-H$]. If you set
MIDchar to something, then the character will appear between the
H and the $. For example, if you set MIDchar to M, then the SID
line will be [MSYS-XXXX-HM$]. This will be sent to all stations
that connect to the BBS. Setting MIDchar to a non-null character
will also cause the MID to be sent during forwarding if the
system to which you are forwarding has MIDchar in its SID.
Here are some combinations of the parameters to do selected
processing:
For no bid (mid) processing on non-bulletins, set
BIDall OFF
ACceptmid OFF
don't set MIDchar
To emulate AA4RE MID processing (I think), set
BIDallON
ACceptmid OFF
MIDchar M
To use a MID if provided, or generate one otherwise, set
BIDall ON
ACceptmid ON
MIDchar M
Currently there is still a lot of discussion going on over MIDS.
Hopefully I have give enough parameters so that MSYS can be used
with whatever standard wins out.
*** Automatic message holding
If you create a file called MSYSHOLD.DAT you can specify
characteristics of messages to hold automatically using parame-
ters similar to those used in the house cleaning file. The
available parameters are:
TO= wildcard representation of To callsign
FROM= wildcard representation of From callsign
AT= wildcard representation of @BBS
SIZE= number that is size of msg
CONNECTED= exact callsign of sending station (less
ssid)
PORT= port number msg is coming in on
5-72
Examples:
SIZE=2500 would hold any messages bigger than 2500
bytes
FROM=WA8BXN PORT=2 would hold any messages from WA8BXN that
come in on port 2
CONNECTED=W8XYZ would hold all messages sent by station
W8XYZ (connected to the bbs)
AT=MSYS would hold all messages with @MSYS
Note the difference between FROM= and CONNECTED=; FROM is the
from call for the message (often supplied after < in the S com-
mand) while CONNECTED is the call of the station connected to the
bbs sending the message.
There is one other parameter that can be specified, a line con-
taining only the letters BBS. The lines following such a line in
the file would not apply to messages that are forwarded to you
from another bbs. For this use, a bbs is defined as a station
that transmitted a [...$] line.
NOTE: Held messages are visible only to the SYSOP and sender.
They are killable only by SYSOP.
*** DOS
If you are using DOS 3.3, you may need to put STACKS=0,0 in your
config.sys file.
*** HEADERS
The HDRS command has been removed. To create an ASCII file con-
taining
all the active message headers, use the following sequence of
commands on the bbs:
X 0 (turn off the More? message temporarily)
>msghdrs (this is the name of the file to be created)
l$ 0 (or l 0 if you don't want to see the bids)
> (close the file)
X 20 (restore the More? message)
5-73
MSYS Utility Support Programs
(c) Copyright 1990 by HUB COMPUTERS, INC
MUTIL.EXE
Originally many of the functions found in MUTIL were
separate programs. When the amount of space on a single diskette
was found to be scarce to include everything needed to distribute
MSYS a decision was made to combine these programs into a single
menu driven utility program. This saves considerable space since
each of these programs share many common routines. Now there are
just two executable programs distributed, MSYS.EXE and MUTIL.EXE.
References in the documentation for MSYS that say to run a
particular utility program should be interpreted as the
corresponding function found in MUTIL.
When you run MUTIL you will get a screen that is similar to:
=================================================================
MSYS Utilities 1.04 by WA8BXN (C) 1989 Hub Computers, Inc.
1 Change maximum number of messages
2 Restore messages from backup directory MAIL.BAK
3 Print remote sysop phrase number table
4 Check Mail index file integrity
5 Test serial ports
6 Print forwarding tree
7 Set number of attempts at forwarding to 0 for all messages
8 Run log file analyzer
9 Run SETUP program
10 Scan message headers to create/add to BBSLIST.DAT
11 Deletes old entries from BBSLIST.DAT and BBSTONTS.DAT files.
12 Fix mail index file (can be hazardous to use!)
13 Process BBSLIST.DAT into BBSTONTS.DAT file
14 Scan BBSTONTS.DAT to build BBSTONTS.BIN (indexed)
15 Build list of archived messages
16 Printer status
17 merge BBSLIST.DAT files
18 Check MSYSNODE.DAT integrity
19 Convert user files 1.05 & before <===> 1.06 and later
20 Sort calls in the BBSLIST.DAT file
21 Delete Old BIDS (and MIDS)
99 Quit
Enter number of selection: _
6-74
MUTIL Function 1 - Change maximum number of messages
Input file(s): MSYS.MSG
Output files(s): MSYS.MSG
The maximum number of messages that can be stored in MSYS is
determined by the MSYS.MSG mail index file. When MSYS starts
running it checks to see if there is an existing MSYS.MSG file.
If there is one, it is used (and contains the header lines of the
messages that existed when MSYS was last stopped). If there is no
existing MSYS.MSG file, then an empty one is created, with a
capacity of 100 messages.
This utility function can be used to change the size of an
existing MSYS.MSG file. You can increase or decrease the size of
the file. You can't make it smaller than the number of active
messages.
NOTES: There is a cost in memory requirements for each message
possible. Each message slot cost 138 bytes of memory; 100
messages (default maximum) thus takes 13800 bytes. A limit of 500
messages would take 69,000 bytes (even if there weren't that many
messages active).
VALUES I USE: I run with a 300 message maximum size. Normally I
have around 200 active messages.
DIALOG WITH FUNCTION: You are first asked for the name of the
MSYS.MSG file to modify:
Enter path to MSYS Mail Index file or just press return
to use MSYS.MSG: _
Normally you will want to just press the return key. If the
current directory from which you are running MUTIL does not
contain the MSYS.MSG file that you want to modify, you can
specify a different path (or even a different file name if you
have renamed MSYS.MSG for some reason).
This function will next copy the specified MSYS.MSG file to a
file called MSYS$$$.MSG which can be used to restore MSYS.MSG if
for some reason this function fails.
Next you are asked if you have run the Check Mail function
(function 4). You should run Check Mail just before this function
since attempting to change the maximum number of message slots
can produce very interesting (and usually bad) results if the
original MSYS.MSG file is corrupt. If you respond N then this
function terminates and you can then do the Check Mail function.
If you have just run Check Mail, then press Y to continue. Note
that you do NOT press return after either of these letters!
If you responded Y, then the function continues, telling the
current maximum number of messages, the current number of active
messages, and some other information. You are then asked for the
6-75
new maximum number of messages you want. This number must be
greater or equal to the number of active messages. It must also
be less than or equal to 1000.
If the value you ask for is acceptable, the file will be changed
to accommodate the new number.
Next you will be asked to press a key to continue (try the return
key). This pause is put in the function so that you can see any
additional messages that were produced before the screen is
cleared.
6-76
MUTIL Function 2 - Restore Messages from backup mail directory
INPUT FILE(S): MSYS.MSG
MAIL.BAK\MSG*.DAT
OUTPUT FILES(S): MSYS.MSG
MAIL\MSG*.DAT
This function allows you to restore messages that have been
deleted or otherwise lost from the normal MSYS.MSG index file
and/or MAIL directory. This restoration is possible only if the
directory MAIL.BAK exists (and has existed since before the
messages of interest arrived), and the messages have not yet been
removed from it.
The function allows you to look at the messages in the MAIL.BAK
directory and restore as active those you select.
NOTE: The format of the messages in the MAIL.BAK directory
includes additional information not found in the messages in the
MAIL directory. This includes the normal message header
information normally found in MSYS.MSG and the BID for the
message (if any).
NOTE: You are strongly advised to run the check mail function
(MUTIL function 4) BEFORE attempting to restore any messages!
NOTE: Restored messages will NOT reflect which stations a
bulletin has been sent to. Generally a restored message looks a
lot like it did when it first arrived. It may or may not have the
substitutions done to the @BBS or other fields done yet. EXAMINE
each restored message with the EMsg command when you get MSYS up
again!
DIALOG WITH FUNCTION: You are first asked for the name of the
MSYS.MSG file to modify:
Enter path to MSYS Mail Index file or just press return
to use MSYS.MSG: _
Normally you will want to just press the return key. If the
current directory from which you are running MUTIL does not
contain the MSYS.MSG file that you want to modify, you can
specify a different path (or even a different file name if you
have renamed MSYS.MSG for some reason).
Next you will get a menu with 5 functions:
F1 - Display a given message number
F2 - Restore a single message
F3 - Restore a range of messages
F4 - Display a range of message headers
F10 - Quit
F1 will ask you for a message number to display. If the message
6-77
exists in the MAIL.BAK directory, its header and text will be
displayed.
F2 will ask you for a message number to restore. If the message
already exists in the normal index file, or the message does not
exist in the MAIL.BAK directory, the restore will not be done.
F3 will ask you for a starting message number and ending message
number to restore. After this it acts much as if each possible
message in the given range was specified for F2.
F4 asks for a starting message number and ending message number.
Messages that exist in the MAIL.BAK directory will get their
headers displayed. If no messages exist in the given range (or
the MAIL.BAK directory is absent) you will simply get the Press
Esc to continue message.
F10 terminates the restore operation. The MSYS.MSG file specified
at the beginning is sorted to get any restored messages in their
proper place and then the file is written to disk.
COMMENTS: You will probably want to do F4 first to see what
messages are available to be restored unless you otherwise know
which one(s) you want to restore or look at.
6-78
MUTIL Function 3 - Print remote sysop phrase number table
INPUT FILE(S): MSYS.RMT
OUTPUT FILE(S): Hardcopy printer output (optional)
This function prints the contents of the MSYS.RMT file (used for
remote sysop verification). The output of this function can to to
just the screen or also to the printer. The output consists of
printing the content of remote sysop phrase followed by a table
that gives the character at each position in the phrase.
DIALOG WITH FUNCTION:
You are asked if you want hard copy output (on the printer).
Respond Y or N as desired.
SAMPLE OUTPUT:
Sample phrase.
0 S
1 a
2 m
3 p
4 l
5 e
6
7 p
8 h
9 r
10 a
11 s
12 e
13 .
USAGE EXAMPLE:
If you did the \Sysop command as a remote user to get sysop
privileges and got the following reply:
Usage stats: Users=7 Msgs rcvd=3 Msgs sent=6 Max=12
you would type the following response:
pp e
6-79
MUTIL Function 4 - Check Mail index file integrity (CHKMAIL)
INPUT FILE(S): MSYS.MSG
MAIL\MSG*.DAT
OUTPUT FILE(S): MSYS.MSG
This function checks the integrity of the Mail index file
MSYS.MSG. It checks for such things as message slots on both the
free and active lists, loops in either of these lists and active
message numbers that do not have text files in the MAIL directory
(and vice-versa). It attempts to fix any errors if it can (and
its generally pretty good at doing it).
NOTE: It will not delete any message text files in the MAIL
directory if they don't have active headers. They will be
reported but you will have to delete them yourself if you really
don't want them. You probably won't really want them, but you
decide!
NOTE: This function may be run in a batch file through MUTIL
(without having to give its function number interactively) by
running:
MUTIL 4
SAMPLE NORMAL OUTPUT:
CHKMAIL - An MSYS Utility to verify mail index integrity
MSYS Mail Index Checker
head=0 free=1 next=2
Reading Index file:
There are 100 total message headers
Pass 1:
No cycles detected
No headers on both lists
All headers accounted for
No message files without headers
All active headers have files
Press a key to continue_
COMMENTS: I would strongly suggest you run this function every
time MSYS crashes for any reason (it should not crash often, if
at all). To be on the safe side, many MSYS sysops always run it
when they start MSYS.
6-80
MUTIL Function 5 - Test serial ports
INPUT FILE(S): None
OUTPUT FILE(S): None
This function provides a very basic test of serial interfaces. It
is designed mostly to see if you got the addresses/int numbers
right for your machine. It is not intended to be a brutal test of
their operation!
DIALOG WITH FUNCTION:
After a table is displayed that lists the normal addresses for
serial cards and corresponding interrupts, you will be asked if
your machine has an 8086/8088 CPU chip in it. If its a basic
PC/XT compatible system, respond Y. If you have an AT (80286) or
higher level machine, respond with N. If you have an 8088/8086
based system (PC class) then it will look for ints from 2,3,4,
and 7. If you say not 8088/8086 (AT class and above) it will
look for ints from 3,4,5, and 7.
Depending on your response, certain interrupt handlers will be
installed. You will then be asked for the address of the serial
card you wish to check. The answer you give must be in
HEXADECIMAL. A valid response might be 3F8, for example. A simple
check is made to see if there might be a serial port at the
address you specify. It is easily fooled if you specify the
address of some other kind of I/O interface.
If there seems to be a device at the address you gave, a quick
check will be made to see if it looks like an 8250 UART chip is
used in your serial interface. Internal loop back tests cannot be
done with the newer UART chips. If the test fails when you select
internal loopback, try the external loopback option. This
requires a connector that will connect pins 2 & 3 together in
place of the tnc you would normally connect. External loopback
can be used to test all types of UART chips.
Next you will next be asked for a baud rate to test at. Here you
give a decimal number as an answer. It probably doesn't make much
difference what you give. (Don't try 0!). I usually test at 1200
baud.
Now its your turn to type characters. As indicated, press Esc to
terminate the test. Normal response should be something like
Had IRQ 4 1 time(s), A received
if you press the letter a key. If interrupts aren't working you
would see
Received A without interrupt.
NOTE: This is not a performance test, just an address test.
6-81
MUTIL Function 6 - Print forwarding tree
INPUT FILE(S): MSYS.FWD
OUTPUT FILE(S): Printer hard copy (optional)
This function displays your forwarding file in two ways to tell
you what callsigns you forward to each bbs you forward to and
also to which bbs you forward each callsign.
DIALOG WITH FUNCTION:
You are asked if you want hard copy output (on the printer).
Respond Y or N as desired.
The first part of the output consists of lines like
AD8I ---> KA8Z KD8GC
which means that messages with @AD8I are sent to either KA8Z or
KD8GC (which ever one you can connect to first).
The second part of the output consists of lines like
KA3NVP <--- KA3NVP NTSNJ NTSNY NTSPA
which means that you forward messages with KA3NVP NTSNJ NTSNY and
NTSPA in some part of the @BBS field to KA3NVP.
NOTE: To pause the display, you must use ^NumLock (^S won't
work). To resume scrolling, press any other key.
6-82
MUTIL Function 7 - Set number of attempts at forwarding to 0 for
all messages
INPUT FILE(S): MSYS.MSG
OUTPUT FILE(S): MSYS.MSG
This function does what it says. Its original purpose was to
convert old format (versions 1.02* and before) index files
(MSYS.MSG) to the newer format that supports selective forwarding
based on number of forward attempts. It may be used any time you
want to set this counter to zero for all active messages
(probably not too often).
NOTE: It is probably a good idea to run CHKMAIL (MUTIL Function
4) before using this function.
DIALOG WITH FUNCTION:
When you start this function, it will ask:
Set number of forward attempts for all messages to zero? _
Respond Y or N (no return is needed). If you respond Y for yes,
it will show a progress report on the screen which is replaced by
Done when the update is completed.
6-83
MUTIL Function 8 - Run log file analyzer
INPUT FILE(S): MSYS.LOG
MSYS.MSG
OUTPUT FILE(S): Printer hard copy (optional)
This program produces a listing of BBS usage.
DIALOG WITH FUNCTION:
You are asked if you want hard copy output (on the printer).
Respond Y or N as desired.
SAMPLE OUTPUT:
=================================================================
From Wed Mar 01 15:23:48 1989 to Mon May 229 00:57:03 1989
Station Connects Sends Reads Kills Forwards
HClean 0 0 0 27 0
N8HTG 3 1 1 0 12
NT8V 0 1 1 0 0
WA8BXN 4 0 0 1 9
WB8ZZS 168 82 31 24 0
LAST
READ MSG# TO @BBS Count Title
May 18 1 TEST 1 test
Mar 23 7 TEST 2 test
May 28 2 TEST 3 test
Mar 02 8073 TEST 7 no title
MSGINs 84 MSGKILLs 97 MSGFWDs 21 MSGREADs 33
RESTARTs 331 QUITs 311 CONNECTS 175
The following messages were received but not killed:
1 2 3 20 21 8073
(These should be active messages on your BBS!)
=================================================================
NOTES: This data is taken from my test system which uses WB8ZZS
as its call (Thanks to my wife Ruth!) Many strange things happen
on this system as I am testing new software changes.
The first line of the report gives the period of time covered by
the contents of the MSYS.LOG file that was read.
The next section of the report lists stations that were active on
the BBS and what they did. The headings mean the following:
Station - Callsign of the station
Connects- Number of times the station connected (or the
SYSOP used the BB command).
Sends - Number of messages sent by this station
Reads - Number of messages read by this station
Kills - Number of messages killed by this station
Forwards- Number of messages forwarded to this station
NOTE: The callsign HClean indicates activity by the House
Cleaning routine.
6-84
The next section lists messages that were read during the period,
sorted in increasing order of number of reads. The meaning of the
headings is:
LAST READ - Date the message was last read
MSG# - The number of the msg on the bbs
TO - The "TO" station callsign of the message
@BBS - The "@" field of the message.
Count - The number of times the message was read
Title - The title of the message
NOTE: Private messages are not shown, only bulletins. This
section is useful to see what interest there is in the various
types of messages.
The next section provides overall counts of various activities:
MSGINs - The number of messages that were sent to the BBS
MSGKILLs - The number of messages that were killed
MSGFWDS - The number of messages forwarded by the BBS to
other systems. Note: If a bulletin is forwarded
to 4 different systems, it counts as 4 forwards
MSGREADs - Total number of Read commands used on BBS
RESTARTs - Number of times MSYS was started
QUITs - Number of times MSYS was gracefully shut down
using ^F4 or Quit command. Restarts - quits is
the number of crashes for whatever reason.
CONNECTS - Number of user connects to BBS + SYSOP BB cmds
The final section of the report gives a list of message numbers
that were assigned to messages sent to the system but not killed.
Normally these message numbers should be active messages on the
BBS. If they aren't, they may be messages to restore since they
got lost somehow.
6-85
MUTIL Function 9 - Run setup program
INPUT FILE(S): MSYS.OPT
OUTPUT FILE(S): MSYS.DEF
This function sets default initialization parameters. It must be
run before you can use MSYS and any time you change MSYS.OPT. It
is documented elsewhere in this document.
DIALOG WITH FUNCTION:
You are asked if you want hard copy output (on the printer).
Respond Y or N as desired.
6-86
MUTIL Function 10 - Scan message headers to create/add to
BBSLIST.DAT
INPUT FILE(S): MAIL.BAK\MSG*.DAT (or specified directory)
BBSLIST.DAT (if it exists)
OUTPUT FILE(S): BBSLIST.DAT
This program scans backup mail message files that are (or were
originally found) in the MAIL.BAK directory to determine what BBS
stations have been "seen" (using the R: lines added by each BBS
as it forwards a message).
DIALOG WITH FUNCTION:
You will be asked to give the name of the directory that contains
the messages to be scanned or to press return to use the MAIL.BAK
directory directly.
NOTE: This function may be run from a batch file by using either
MUTIL 10
--- or ---
MUTIL 10 dirname
In the first form (MUTIL 10) it will be assumed that the input
files are in the MAIL.BAK directory. In the second form (MUTIL 10
dirname) the files are assumed to be in the given directory name.
OUTPUT FILE FORMAT:
The first line of BBSLIST.DAT gives the date this function was
run to create or add to the file.
The remaining lines in the file consist of the following fields:
callsign of bbs
location of bbs
postal code of bbs
number of times this call has been seen
Note: If you choose to edit this file, be sure to keep things in
the same columns. Also note that the callsigns are lined up using
the digit of the callsign. The list is sorted by digit in
callsign, letters after the digit, and then letters before the
digit (pretty much callbook order). Calls that do not begin with
A, K, N, or W are grouped together at the end of the list, with
an * in the first position in the record (non-US calls).
6-87
MUTIL Function 11 - deletes old entries from BBSLIST.DAT and
BBSTONTS.DAT files.
6-88
MUTIL Function 12 - Fix mail index file
***** WARNING ***** This function can DEStroy the mail index file
INPUT FILE(S): MSYS.MSG
MAIL\MSG*.DAT
OUTPUT FILE(S): MSYS.MSG
This function allows manual inspection, checking and modification
of the mail index file. It is a utility I wrote to see what
DEStroyed a mail file and perhaps fix it. There is one function
that may be useful to most sysops, that allows you to specify the
next message number to be assigned to incoming messages. You may
want to do this if you were running some other bbs and want to
continue using message numbers from where you left off.
Personally I would suggest that you don't do this but rather
start with the default value 1. But its up to you!
NOTE: Make a copy of your existing MSYS.MSG file before using
this function!
NOTE: Most of the checking and repair functions have been
automated in the CHKMAIL function (MUTIL Function 4).
DIALOG WITH FUNCTION: You are first asked for the name of the
MSYS.MSG file to modify:
Enter MSYS message header file name or simply press
return for MSYS.MSG: _
Normally you will want to just press the return key. If the
current directory from which you are running MUTIL does not
contain the MSYS.MSG file that you want to modify, you can
specify a different path (or even a different file name if you
have renamed MSYS.MSG for some reason).
To change the number that will be assigned to the next message,
use the following procedure:
Select F8 (Manual changes)
Select F5 (Change Next)
Enter new value for next message number to be used.
Select F10 (Return to previous menu)
Select F9 (Save changes and quit)
Renumbering Messages
All active messages may be renumbered using MUTIL function 12.
You should renumber your messages when you reach about message
number 64000. As message numbers increase above this they will
wrap around back to 0 if you don't use this function. Some of the
L command options will not work properly if newer messages have
numbers smaller than older ones.
To renumber the messages, go through the following steps:
1 - Start the MUTIL program
2 - Type 12 and return
6-89
3 - Press return to accept use of MSYS.MSG
4 - Press F8 for manual changes
5 - Press F6 for Renumber messages
6 - Type new starting message number (1 is good)
then press return
7 - Press F10 to return to previous menu
8 - Press F9 to save changes
9 - Press return to go back to main menu
10 - Type 99 and return to exit
6-90
MSYS.MSG FILE FORMAT: (For the adventuresome only!)
(If you know what you are doing,
this will make some sense to you)
int head; /* slot number of head of active list */
int free; /* slot number of head of free list */
int next; /* next message number to be assigned */
/* Each slot has the following definition: */
struct msghdrdef {
unsigned mmsgnr;
unsigned char mmsgtype[3];
int mmsgsize;
unsigned char mmsgto[7];
unsigned char mmsgfrom[7];
unsigned char mmsgatbbs[39];
unsigned char mmsgdate[7];
unsigned char mmsgtitle[40];
long mmsgbits;
unsigned char mmhbbs[8];
unsigned char mmsgtries;
unsigned char mmsgbid[15];
int mmsglink;
};
/* Note: word alignment is forced for all ints & longs */
6-91
MUTIL Function 13 - Process BBSLIST.DAT into BBSTONTS.DAT
INPUT FILE(S): BBSLIST.DAT
ZIPCODES.DAT
STATES.DAT
ROUTES.DAT
OUTPUT FILE(S): BBSTONTS.DAT
This function builds a list of BBS calls (and optionally zip
codes) and the corresponding xx designator to which they should
be forwarded.
If you select processing US BBS calls by state the data found in
BBSLIST.DAT is scanned for state and zip code. The state is
identified as being something after a comma in the location field
that matches the list of state two letter codes found in the
STATES.DAT file. If only one state is found and it corresponds to
the zip code found, then the BBS call is automatically assigned
to xx where xx is the state abbreviation. If either of these
pieces of information is missing, or they do not match the test
fails and you are asked to decide what state the bbs belongs in.
DIALOG WITH FUNCTION:
You will be asked if you want to include state routings for
ZIPCODES. You should reply Y the first time you are creating the
BBSTONTS.DAT file. Otherwise reply N. If you delete BBSTONTS.DAT
for some reason, you should reply Y the first time you create a
new one.
If the state of the BBS cannot be automatically determined, you
will get a screen that looks like this:
=================================================================
WB8ZZS KIRTLAND OH 44026 (4)
State/ZIP check failed - Zipstate OH
Enter two letter state code then <Return key> or
press <Escape key> then <Return key> to ignore
or just press <Return key> to use OH
=================================================================
The first line of this screen is the line from BBSLIST.DAT that
is being considered. The next line gives the state that
corresponds to the zip code (if available). The third line gives
the guess that can be accepted if you just press return. If the
guess is good, hit return. If you want to use a different state,
type the two letter code for that state and then press return. If
you want to omit this call from the output file, press some non-
letter key before pressing return. Space bar, return works well.
In this example, the state could not be identified because there
is no comma between the city and the state. (It would be nice if
6-92
everyone used standardized R: lines!) The guess of OH was made
from the zip code alone.
When the US calls have been processed, you will be asked if you
want to process non-US calls. If you have earlier choosen not to
process US calls by states/zipcodes, the US calls will be
processed with all the other calls if you choose to process non-
US calls. This feature is useful for non-US hams that handle all
US messages as just going to the US.
If you choose to process the calls at this point, you will be
presented with screens that list an entire entry from the
BBSLIST.DAT file. Following this line will be the callsign of the
BBS identified from the line. Using the call prefixes found in
the ROUTES.DAT file, a guess will be made as to what routing
should be used for the given call. You may then choose to ignore
the call, to use the routing obtained from the call prefix (if
any) or to type the complete route you desire.
A sample screen might look like this:
=================================================================
* WB8ZZS KIRTLAND OH 44026 (4)
Callsign: WB8ZZS
Possible route: USA.NA
Press <Escape key> <Return key> to ignore
Type desired routing then press <Return key> or
just press <Return key> to use USA.NA
=================================================================
BBSTONTS.DAT FILE FORMAT:
This is an ASCII file containing in bytes 1 to 9 a BBS call or
zipcode (left justified, possibly with wildcard * indicator), and
the corresponding designator to which messages for that BBS call
or zip code should be forwarded beginning in position 10. Example
lines:
89* NV
WB8ZZS OH
VK1XX AUS.AS
NOTE: Bulletin routing designator (like ARRL) should NOT appear
in this file.
NOTE: The file is sorted in ascending order using the entire
record as key.
NOTE: There should be no duplicates of calls/zip codes found in
the first 9 bytes of the records.
6-93
ROUTES.DAT FILE FORMAT:
This is an ASCII file that contains callsign prefixes and
routings. The callsign prefix begins in the first byte.
Comparisons are made with the BBS call for the length of the
prefix from this file. The routing field begins in byte 9 (a tab
character can be used to get here). Here are some sample entries:
4X ISR.AS
9M2 MYS.AS
A USA.NA
The idea here is that incoming messages for a given bbs will get
the routing appended to the @BBS field. Thus if someone sent a
message to 4X1ABC @ 4X1XYZ the @ field would become
@4X1XYZ.ISR.AS
It is expected in your forward file you would either have
provisions to route the country part (ISR) to some bbs, or the
continent part (AS) to some bbs. Thus to route foreign messages,
you might just have all the continent designators (like EU, AS,
NA etc) in your forwarding file or you can be more selective.
Remember that you can have some countries along with the
continent routings in your forward file. The part of the @BBS
from left to right that is found in the forwarding file is the
one that is used. If you do a lot of direct forwarding to various
countries that can be accomodated; if you just dump all foreign
stuff on a single station that is easy too. Feel free to modify
the contents of ROUTES.DAT as you see fit; I have just included
country prefixes for countries for which I seen message headers
pass through my system.
6-94
MUTIL Function 14- Scan BBSTONTS.DAT to build BBSTONTS.BIN
INPUT FILE(S): BBSTONTS.DAT
OUTPUT FILE(S): BBSTONTS.BIN
This function builds an index of the calls in the BBSTONTS.DAT
file, placing the index at the beginning of the BBSTONTS.BIN
file. After the index, the contents of BBSTONTS.DAT is copied to
BBSTONTS.BIN.
DIALOG WITH FUNCTION:
This function does not require any keyboard input.
NOTE: The format of the resulting file is such that no attempt
should be made to edit it. With care, BBSTONTS.DAT may be edited
and the result then processed by this function.
NOTE: The file BBSTONTS.BIN is used by MSYS. The files
BBSTONTS.DAT and BBSLIST.DAT are NOT used directly used by MSYS
and may be stored on a diskette, if desired, when MSYS is
running. I just keep them in the normal MSYS directory.
6-95
MUTIL Function 15 - Build list of archived messages
This newly documented function will look at messages found in a
given directory (in MAIL.BAK format) and construct a file of the
message headers. The result is a file of all your messages like
doing a L command on the BBS for every message that has passed
thru your system. You can use the grep function on it to find
messages with some particular string of characters in their
header line. I use it to find a message when I think to myself "I
remember there was a message about ... one time". Then knowing
the message number you can go back to your archive diskettes and
extract the complete text.
6-96
MUTIL Function 16 - Printer status
This function provides a very simple printer test to see if its
connected and can be initialized.
6-97
MUTIL Function 17 - merge BBSLIST.DAT files
This function takes as its input your current BBSLIST.DAT file
(which it first renames to BBSLIST.BAK) and another file you
specify (in the same format as BBSLIST.DAT) and merges the two
files into one called BBSLIST.DAT. I use this function to merge
the BBSLIST.DAT file that some of the users of MSYS have sent me.
This allows me to include in my file some bbs calls that normally
would not have been seen in messages passing thru my system.
6-98
18 Check MSYSNODE.DAT integrity
6-99
19 Convert user files 1.05 & before <===> 1.06 and later
6-100
20 Sort calls in the BBSLIST.DAT file
6-101
MUTIL Function 21 - Delete Old BIDS (and MIDS)
This function deletes old bids/mids from the file BID-
LIST.DAT. It asks for the number of days worth of bids that
should be kept. Run it periodically (maybe once a month). The bid
file can hold up to 6500 entries; the more it has the slower it
works.
6-102
Information for Advanced Users
I. Replaceable directory names
Beginning in MSYS 1.04 you can specify alternate directory
names to be used by MSYS in place of the standard ones by using
appropriate DOS set commands. The directory names that can be
replaced and their default values are:
Default Set DOS variable
Dir Name to replace
-------- ----------------
FILES MSYS:FILES
FWD MSYS:FWD
HELP MSYS:HELP
MAIL MSYS:MAIL
MAIL.BAK MSYS:MAIL.BAK
As an example, assume you have a RAM disk at drive E: and
have set up a directory called HELP on E: and copied the normal
help files to this directory. You can then issue the following
DOS command before starting MSYS:
set MSYS:HELP=E:HELP
and now MSYS will get the help files from the E:HELP directory.
NOTE: You must be very careful in using a RAMDISK since its
contents are easily lost. Also, you should probably not use a
RAMDISK that takes space out of the normal 640K address space.
NOTE: You are not limited to using RAMDISKS in specifying the
disk and/or directory to be used for the above directories. You
could specify floppy and/or hard disks as well.
II. Replacable file names.
You can also replace the following file names of files
normally found in the "MSYS" (default) directory. Judicious
choices can speed up operation and/or let you make use of
multiple disk drives. Poor choices can be a disaster!
Default File Set This DOS
Name Parameter to replace: Notes
------------- --------------------- -----
BBSTONTS.BIN MSYS:BBSTONTS.BIN (1)
MSYS.FWD MSYS:MSYS.FWD (2)
MSYS.HRD MSYS:MSYS.HRD (3)
MSYS.LOG MSYS:MSYS.LOG (3)
MSYS.MSG MSYS:MSYS.MSG (4)
MSYS.USR MSYS:MSYS.USR (4)
MSYSHOST.NET MSYS:MSYSHOST.NET (5)
MSYSBBSB.DAT MSYS:MSYSBBSB.DAT (2)
MSYSPASS.DAT MSYS:MSYSPASS.DAT (5)
6-103
Notes:
1 - Very good candidate for ram disk (read only)
2 - Good to put on ram disk if you are careful (changed by MER)
3 - These can be made NUL if you don't want them
4 - If you like to live very dangerously, consider putting them
on ram disk. Otherwise keep them on hard disk. Updated
frequently during normal operation, they are very important
files.
5 - Good for ram disk if you run tcp/ip much. Read mostly.
Example: Assume you still have a ram disk at E: and have copied
the normal contents of BBSTONTS.BIN to that disk. You could do
the following DOS command
set msys:bbstonts.bin=e:bbstonts.bin
to cause MSYS to read the file from your ramdisk.
NOTE: With all these changes you can make you can configure a lot
in terms of files now. Be careful of file sizes (MSYS.LOG grows
endlessly) when thinking about where to put things.
NOTE: The programs in MUTIL assume the files are where they
should be and totally ignore any replacements you may have made
of file names and/or directory names.
NOTE: If you are not absolutely sure of what you are doing, don't
(do anything with these facilities).
NOTE: If you crash your system, don't blame it on me! If you
think one of these replacements doesn't work right let me know.
NOTE: Before you try any of this, MAKE BACKUPS OF EVERYTHING!
NOTE: Good luck!
NOTE: This function hasn't exhaustively tested yet!
6-104
EDITVIEW (ED Command)
(c) Copyright 1990 by HUB COMPUTERS, INC.
The ED command used from the MSYS command mode can be used
to edit small text files. The file is limited to records each 80
bytes or less in length. By default up to 200 records may be in
the file. This can be modified by giving the maximum number of
lines after the file name. The intent of this editor is to do
little things without having to take down the system to run a
more powerful editor. These might include editing message texts,
the forward file, etc.
ED is a full window editor (it adjusts its operation to fill
the window it is run in). It must be run in a window that is 80
characters wide. Thus using the default window definitions it can
be run in the normal command window (0) or you can use the
CMdwindow command to first go to window 4 (the one you get when
you press F4) and then use the ED command. You will then be using
the entire screen for your editing.
ED is pretty much a what you see is what you get editor.
There are two modes of operation. When you start the editor you
are in full screen or edit mode in which changes you make to the
screen are also made to the file. In this mode you get a line at
the bottom of the window that gives such information as the
current line number and the name of the file being edited.
The other mode is command mode in which you give commands to
be done by the editor. To enter command mode press the Escape
key. The bottom line will change to Edit Cmd: and await your
command. The command you type will appear on this bottom line. To
get a list of available commands type Help. You should see
something that looks like the following:
Commands
Find - locates given string. Example: F wa8bxn
Notes: Not case sensitive. F10 from edit mode is find
same string again.
Insert - puts blank line at beginning of file
QUIT - Abandons edit
SAVE - Saves file and exits
DELete - Delete specified # of lines from file beginning
with current line
Return key in edit mode with insert on inserts blank lines
Press a key to return to edit
Use of the keypad to move around in the file is what is
expected of the labeled keys, with the following enhancements.
If you are somewhere in a line and you press the Home key you go
to the beginning of the current line. If you are the
beginning of the current line and press Home you go to the
beginning of the screen. If you are at the beginning of the
screen, pressing Home takes you to the beginning of the file.
7-105
EDITFILE (EF Command)
(c) Copyright 1990 by HUB COMPUTERS, INC.
The EF command used from the MSYS command mode can be used
to edit small text files. The file is limited to records each 80
bytes or less in length. By default up to 200 records may be in
the file. This can be modified by giving the maximum number of
lines after the file name. The intent of this editor is to do
little things without having to take down the system to run a
more powerful editor. These might include editing message texts,
the forward file, etc.
This isn't a full screen editor but rather a line editor
that was influenced in its design by the UNIX editor. Plain and
simple, nothing fancy is found in it. To begin editing, use the
command EF filename when you have the cmd: prompt. The filename
can contain drive and path information. If the file does not
exist you will be given the option to create one by that name.
To create a new file this way, use the Append command. Type
the lines of the new file and then a line with a period at the
beginning to exit append mode. Then use the commands Write
and Quit (each followed by the return key) and you have created a
new file. All of the commands can be shortened to the first
letter of the command, except for the DElete command which
requires at least the first two letters.
Here is information about the commands:
# (i.e., a line number) makes that line the current line and
also displays it
+ # Makes the current line # more than it is now. If # is omitted
then the current line is incremented by one.
- # Same as + # except current line number is decremented.
<ESCAPE> Using the Escape key followed by the Return key abandons
edit with no changes made to the file (unless you used the
Write command yourself).
<RETURN> Pressing the Return key alone displays the next line and
makes it the current line.
Append enters input mode, placing the following lines of input
AFTER the current line. A line beginning with a period
terminates append mode.
Bottom makes the last line the current line and displays it.
Change can be used to replace part of the current line. The first
non-blank character after the command is the quote character.
The operands are quote-character string-to-replace quote-
character replacement-string quote-character. For example,
C /YXZ/abc/
would replace XYZ in the current line with abc. The line is
7-106
printed after it is displayed.
DElete can be used to delete the current line. If a number is
specified as an operand, it is the number of lines to delete
beginning with the current line.
Down moves the current line down the number of lines specified
(or 1 if none is specified).
Find uses the first non-blank character after the command word as
the beginning of the search string. The search is from the
current line on in the file. Case is NOT important. If a
match is found the line is displayed and that line becomes
the current line. If no match is found the current line
remains unchanged.
Help displays the list of commands.
Insert is like Append except that the new lines are placed BEFORE
the current line.
Near displays the contents of the file 5 lines before and 4 lines
after the current line which remains unchanged.
Print with no operands displays the current line. Give 1 operand
it displays the line with that number. Given 2 operands
(separated with a blank or comma) it displays from the first
to the second line number. The current line number remains
unchanged.
Quit is used to exit the editor after the file has been written.
Top makes the first line (numbered 0) the current line and
displays it.
Up decrements the current line number by the number given or 1.
View displays the current line and the 9 lines that follow it.
The current line remains unchanged.
Write causes the file to be written to disk with any changes that
have been made.
^F is used to search again for the same search string give with
last use of Find.
To start the editor, type EFile filepathname [# of lines max].
Examples:
ef msys.fwd 250
ef mail/msg25.dat
efile a:f1.c
7-107
HOUSECLEANING (HC command)
(c) Copyright 1990 By HUB COMPUTERS, INC
MSYS.HCL
You create a file called msys.hcl. In it you put lines describing
classes of messages you want to eradicate. Each line should
contain one or more of the following keywords:
AT= TO= FROM= AGE= TITLE= TYPE= KEEP= SYSOP=
So for example:
AT=ARRL AGE=30
would delete all messages with @BBS of ARRL that are over 30 days
old. If specified, the values of AT TO and FROM must match
exactly for a message to be deleted. TITLE and TYPE if specified
must match some part of their corresponding message header
fields; case is ignored.
KEEP can be used to specify a number of msgs that match the other
values given that should be saved anyway.
Example: TO=ALL AT=ARRL TITLE=PFB KEEP=2
Would keep the newest two messages to ALL@ARRL with PFB somewhere
in their title. The value of title given cannot contain blanks.
SYSOP=Y has to be specified in any line that you want to delete
messages that are to the idcall of the bbs.
Thus to delete all read messages (including one to you) you could
have a line: TYPE=PY SYSOP=Y The following line deletes read
messages, except those to you: TYPE=PY
The effects of these lines can be far reaching. For example, if
you put in the line: KEEP=5
Then it will delete all but the 5 newest messages!
All this action takes place when you type HClean NOW
or at a time specified as a numeric parameter to HClean. HC 120
would cause it to happen at 02:00 (number given is minutes after
00:00 [midnight] to begin housecleaning).
msys.hcl file as an example:
at=arrl age=21
at=okipn age=10
at=panet age=3 type=#
at=alloh age=10 type=#
at=neoh age=10 type=#
at=allbbs age=7 type=#
at=rlibbs age=7 type=#
at=amsat age=7 type=#
at=midnet age=3 type=#
at=usnet age=3 type=#
at=wpab age=3 type=#
at=arrl title=pfb keep=1 type=#
8-108
at=arrl title=dx keep=1 type=#
at=arrl title=keplerian keep=1 type=#
type=# title=sale age=2
type=# title=need age=3
type=# age=35
type=py keep=1
type=pf keep=2
type=tn age=21
type=pn age=60
to=sysop age=7 type=#
At the end of housecleaning, the file MSYSHCL.DO is done (as a DO
file) if it exists.
8-109
MODEM Support
(c) Copyright 1990 by HUB COMPUTERS, INC.
One or more modems may now be connected to MSYS. Each re-
quires its own port. In the port command in MSYS.OPT for each
modem, the speed value is the rate at which the modem is to be
operated on the phone line.
Note that only one speed is possible for each port. You should
set radio speed to 1200 baud independent of phone line speed and
also select a tnc file. Here is a sample MSYSTNC.9 file I used
for testing with comments (not actually in the file) that begin
with :
ATZ : reset modem
ATS0=1 : answer on one ring
ATQ1 : don't send any result codes
ATM1 : turn on speaker during call setup
When the computer answers the caller will have to give two
values, one for what is called "call" and another for "password".
These values, in the case typed, must be found on a line in a
file called MSYSPASS.MOD. A third entry in each line of this file
is required and is the callsign that the caller will appear to
have connected with on the bbs. Thus the first response doesn't
have to actually be a callsign. All functions normally available
on the bbs from a radio connection are available via the modem
including remote sysop if so authorized. If the correct informa-
tion is not provided in two attempts the modem hangs up, as it
does when the Bye command is used by the caller or the channel is
disconnected by the sysop. There is no timeout timer on the
modem.
In the PORT statement in the MSYS.OPT file mentioned above, a
modem is identified by giving a port the name MODEM.
Carrier Detect must reflect real CD. That is be true when someone
is connected and false otherwise.
DTR must also be connected.
8-110
Sysop commands related to TCP/IP
(c) Copyright 1990 by HUB COMPUTERS, INC.
MYIpaddr takes four integers in the range 0 to 255. It sets the
IP address that the system will respond to. Example: MYI 44 70 4
6 If MYIpaddress is not specified, or set to all zeros, the
TCP/IP support will be inactive.
MYTcpip takes a callsign (with SSID) that will be used when
sending arp and TCP/IP frames. It can be the same as the ID call
in most cases.
TElnet takes an IP address and optional server number as
parameters. A symbolic IP address may given to be looked up in
the file MSYSHOST.NET. Default server is 23. This command is used
to establish keyboard to keyboard connection with a TCP/IP
station.
Examples: TE [44.70.4.10]
te hsp (hsp would have to be defined in
MSYSHOST.NET)
TElnet operates much like C# normally used to connect to AX.25
stations. ^Cd is used to disconnect.
TPorts takes a port mask value as an argument. This number is
used the same way as in the other similar commands: each port
corresponds to a port (port 0 is the rightmost bit) and when the
bit is set to 1 for a given port that port is available for
TCP/IP use (particularly ARP broadcasts).
ARP used without an argument lists the known callsign/IP address
correspondence determined by TElnet connects. An optional
argument, CLEAR, may be used to erase all of the ARP entries.
FTP takes a host-id as an argument (it can be either an IP
address in the square brackets or a symbolic IP address). It
establishes a connection to the FTP server of the specified
system. FTP is the File Transfer Protocol used in TCP/IP.
SMTP allows local access to the SMTP server (mainly for test
purposes).
Note: The following servers are currently implemented in MSYS:
7 Echo
9 Discard
21 File Transfer Protocol
23 Telnet
25 Simple Mail Transfer Protocol
*** Files related to TCP/IP:
MSYSHOST.NET This is an Ascii file you create with an editor
(such as the MSYS ef command). Each line in the file begins with
8-111
an IP address that includes the periods but not the square
brackets around it. Following this there is at least one space
and/or tab character, then the list of symbolic names (or
aliases, or nicknames, what ever you want to call them). You
may place comments on the line by beginning the comments with a
pound sign (#). Example entry line for this file: 77.70.4.6 bxn
mike wa8bxn # kirtland, oh This line would allow "bxn" "mike" or
"wa8bxn" to be used as arguments in the TElnet and FTP commands.
Note that WA8BXN here just happens to look like a callsign. The
actual callsign (and SSID) associated with a particular IP
address is determined by ARP (address resolution protocol)
broadcasts. These symbolic names you define in this file
simply relieve you of having to remember (and type) complete IP
addresses. Nothing more, nothing less!
MSYSPASS.DAT This file contains the user names and passwords for
FTP users. Each line contains 3 or 4 items:
username password access directory
Username is the name the user will use to log in. It can be
anything for a given user. It could be their callsign or
something else. The password can also be anything. If you put *
as the password in the file for a particular, any password given
by the user will be accepted. The third entry on each line,
access, is a number that says how much access the user will have
to your system: 1 means can only read files, 3 means read and
write (but not replace or delete) and 7 means read, write,
replace and delete. You shouldn't set 7 for any user since the
passwords given by a user can be monitored by others. The last
item which should always be given is the root directory that the
user will have. They may never go closer to the real root than
what you give here. Here are some
examples:
anonymous * 1 files --- this allows user anonymous to read
any files in MSYS/FILES and any of
its subdirectories. Any password can
be given for this user. Anonymous
with * for the password is an
expected "standard" entry for TCP/IP
systems to give access to totally
public files. Include it in your
system.
apple runtime 3 --- This allows user apple (who must give
password runtime) read/write access
to your entire disk (DEFAULT
DIRECTORY IS THE REAL ROOT
DIRECTORY!)
*** USER ACCESS NOTE
Access level chart
Level 1: CD DIR GET PWD QUIT
Level 3: PUT MKDIR
Level 7: PUT (to replace existing file) DELE RMDIR
8-112
If you are going to allow level 7 access (ie, can do everything)
I would suggest you also assign a directory that doesn't allow
access to any needed files. For example, you might set up the
following entry in the MSYSPASS.DAT file:
WA8BXN MIKE 7 /MSYS/FILES/WA8BXN
You will have to create a directory WA8BXN in the files
directory. Now stations can log in with WA8BXN MIKE and do
anything in /MSYS/FILES/WA8BXN and any directories found in this
directory.
If you set up ANONYMOUS * 1 /MSYS/FILES then the user
ANONYMOUS can read anything put in the WA8BXN subdirectory of
FILES (as well as in FILES itself) but not write or otherwise
change anything. The rest of your files should be pretty well
protected.
*** FTP COMMANDS:
When you use the FTP command to connect to another system you can
type HELP to get a list of the supported commands.
They currently include:
CD dirname To move around in the directory structure
CD with no arguments gives the current directory
DELE filename To delete given file
DIR filespec gives a directory listing
GET filename downloads a the given file
MKDIR makes a directory
PUT filename uploads the given file
syntax is put [localfilename] remotefilename
If the optional localfile name is omitted it is assumed
to be the same as the remote file name.
PWD gives the current directory
QUIT disconnects
RMDIR dirname removes the given directory
*** IP Routing:
What does this mean? Its sort of like digipeaters for the
TCP/IP world. If a TCP/IP user sets you up as a route for IP
frames going to a particular IP address MSYS will now repeat them
if it has (or can get thru an ARP request boadcast) a known route
to the DEStination IP address. Consider the following fictitious
example: W9AAA [44.60.1.1] is in Indiana and wishes to connect to
W3AAA [44.80.1.1] in Pennsylvania but can't do it directly. W9AAA
can reach W8AAA [44.70.1.1] in Ohio who can in turn reach W3AAA.
W9AAA will set up the route to [44.80.1.1] to be W8AAA (an MSYS
system). When attempting to connect to W3AAA (using Telnet, for
example) will send out a SYN IP frame (connect request) to
callsign W8AAA but with an IP address of [44.80.1.1], the IP
address of W3AAA. W8AAA upon hearing this will check its ARP
table to see if it knows how to get to [44.80.1.1]. If the entry
is not there, W8AAA will do an ARP broadcast on all the ports
8-113
enabled for TCP/IP. W3AAA will respond on one of them and this
will put an entry in the ARP table. Now when a SYN is heard from
W9AAA it will be repeated by W8AAA and thus heard by W3AAA.
To use IP ROUTING yourself in MSYS you use the arp add command.
When adding a given IP address you would put the call of the
TCP/IP station you want to use as an IP repeater in place of the
call that belongs with the IP address. You can still use normal
ax.25 digipeaters (up to 8) to reach the TCP/IP station.
If the path from W8AAA to W3AAA in the above example was not
direct, then the following arp entry could be done at W8AAA,
assuming that K8AAA is a normal ax.25 digipeater:
arp add W3AAA port# 44 80 1 1 K8AAA
NOTE: For more on TCP/IP refer to The KA9Q Internet Software
Package.
In the TCP/IP related ARP command, use -2 as the port number for
routing thru the network interface.
8-114
Samples of MSYS files
(c) Copyright 1990 by HUB COMPUTERS, INC.
*** MSYS.OPT:
PORT 0 AT $3F8 INT 4 SPEED 4800 NAME 145.090
PORT 1 SUBPORT 1 OF PORT 0 NAME 220.52
PORT 2 AT $2f8 INT 3 SPEED 4800 NAME 145.030 RADIOSPEED 300
TNCTYPE 1
NUMCHANS 10
DIGI N8HTG-1 FROM 0 TO 1
DIGI NT8V-1 FROM 0 TO 1
DIGI N8HTG-1 FROM 1 TO 0
DIGI NT8V-1 FROM 1 TO 0
DIGI N8HTG-3 FROM 1 TO 2
DIGI NT8V-3 FROM 1 TO 2
DIGI N8HTG-3 FROM 2 TO 1
DIGI NT8V-3 FROM 2 TO 1
DIGI N8HTG-6 FROM 0 TO 2
DIGI NT8V-6 FROM 0 TO 2
DIGI N8HTG-6 FROM 2 TO 0
DIGI NT8V-6 FROM 2 TO 0
bbs alias NT8V
BBS CALL N8HTG
ANSWER CALL N8HTG-13
KANODE CALL N8HTG-8
SYSOP NAME Lee
SYSOP QTH PORT HURON, MI.
SYSOP ZIP 48060
ID CALL N8HTG
FORWARD CALL N8HTG-15
STACK FORWARD 8000
STACK DECODE 1500
STACK CALL 4000
FORWARD TIME 10
ID EVERY 45
MONITOR OUTGOING ON
MONITOR IFRAMES ON
MONITOR UFRAMES ON
MONITOR BFRAMES ON
AX25 RETRIES 10
WINDOW 0 BACKGROUND 0
WINDOW 5 BACKGROUND 0
WINDOW 6 BACKGROUND 0
WINDOW 2 BACKGROUND 0
WINDOW 3 BACKGROUND 0
WINDOW 5 FOREGROUND 10
WINDOW 6 FOREGROUND 9
WINDOW 2 FOREGROUND 12
MAKE
*** MSYS.DO:
WS 0 1 1 80 17
8-115
WS 5 50 19 80 25
WS 2 1 19 48 21
WS 6 1 22 51 24
retries 5 5 5
maxframes 4 4 4
frack 15 15 15
paclen 128 128 128
BD 0 NM8X
BT 0 N8HTG PBBS -- PORT HURON MI.
BD 1 KV8G-3
BT 1 N8HTG PBBS -- PORT HURON MI.
MAKEP OFF
TIMEZONE UTC
MONST OFF
MYI 44 102 0 75
MYT N8HTG-4
TP 2
host xt.n8htg.ampr
BELL ON
*** MSYS.OTD:
<<< K-NODe = N8HTG-8 #### GATEWAY = N8HTG-1 145.03 <-> 145.09 >>>
*** MSYSK.OTD:
< Please try N8HTG PBBS ### N8HTG-1 Gateway 145.030 <-> 145.090 >
*** MSYS.REP:
48060 NTSMI 48060 N8HTG
48040 NTSMI 48040 N8HTG
48001 NTSMI 48001 N8HTG
48002 NTSMI 48002 N8HTG
*** MSYS.RMT:
TEST PHRASE
*** MSYSBBSB.DAT:
25 VE3WZL
26 WA8BXN
27 WB8I
28 N8HTG
29 VE3GYQ
30 WA8OOH
*** MSYSFWD.DEF:
F1 WA8BXN
WA8BXN
----------
F0 WB8I V NM8X-1
8-116
WB8I
----------
*** MSYSHOST.NET:
# IP address host name alias # comments
#
44.102.0.74 xt.nt8v.ampr nt8v #roy
44.102.0.75 xt.n8htg.ampr n8htg #lee
*** MSYSPASS.DAT:
guest * 3 public
nt8v roy 3
n8htg lee 3
k8dd hank 3 public
*** MSYSTNC.1 (AEA PK-232):
VHF OFF
HB 300
AWLEN 8
PARITY 0
CONMODE TRAN
TRACE OFF
HID OFF
BE 0
passall off
RAWHDLC ON
HP OFF
PP ON
KISS ON
HOST ON
host on
8-117
BIT PATTERN CHART
(c) Copyright 1990 by HUB COMPUTERS, INC.
To be used for DPorts, KPorts, MONPorts and TPorts
[ PORT 3 2 1 0 ] 1=ON 0=OFF
0 0 0 0 0
1 0 0 0 1 0-ON
2 0 0 1 0 1-ON
3 0 0 1 1 1,0-ON
4 0 1 0 0 2-ON
5 0 1 0 1 0,2-ON
6 0 1 1 0 2,1-ON
7 0 1 1 1 0,1,2-ON
8 1 0 0 0 3-ON
9 1 0 0 1 3,0-ON
A 1 0 1 0 3,1-ON
B 1 0 1 1 0,1,3-ON
C 1 1 0 0 3,2-ON
D 1 1 0 1 0,2,3-ON
E 1 1 1 0 1,2,3-ON
F 1 1 1 1 ALL ON
8-118
Frequent problems
(c) Copyright 1990 by HUB COMPUTERS, INC.
--- The system will not forward.
Make sure you executed the MERGE command. Without doing this the
system will never forward.
--- The system appears to work but nothing is on the screen.
Make sure you set the display type correctly in the msys.opt
file. The command is WINDOW DISPLAY COLOR for color monitors and
WINDOW DISPLAY MONOCHROME for monochrome monitors.
--- The system comes up and appears to hang.
This may be caused by a non-existent com port, check the lines in
your msys.opt to make sure the port addresses are correct.
--- The system boots after forwarding
This may be caused by having too many entries in your forwarding
file remember you may only have up to 300 different bbs names in
your file.
--- Performance hint:
Don't let too many messages pile up in mail.bak <DIR> before you
delete them (after archiving if you wish). Having too many files
there makes S cmd on bbs very slow to respond with next >.
"I Haven't tried it, but maybe you will want to" Section
Here are some suggestions from users of msys that they claim
work. Use at your own risk!
To cure the problem of certain tncs that don't transmit properly
on HF use radiospeed of 1200 in place of 300 in msys.opt. I
can't imagine how this could help, but someone says it did for
them (they weren't using MFJ tncs which seem to have this kind of
problem). One thing you might want to try if you are having
problems with a tnc on HF is to get a copy of KA9Q's net.exe
program and see if you can use its ax.25 connect command with
your tnc on hf. If that fails as well the problem definitely is
in the tnc.
To run msys under dv on a 386 machine, try these values in the
"performance" section:
foreground 9
background 6
common memory 15
dos buffer for ems 5
optimize communications Y
8-119
allow swapping of programs N
manage printer contention N
To put a MFJ Tnc in kiss mode, try this in your msystnc.# file
ax off
parity 0
awlen 8
conmode trans
kiss on
restart
Paccom rom version 1.1.5 may work better than 1.1.662
8-120
INDEX
A (abort), 34
ABortfwd, 9, 14
ADDUser, 9, 14
ANSWER CALL, 6
APpend, 9, 14
ARChive, 9, 14
ARP, 9, 14
ARP add, 9, 14, 114
ARP DEL, 9, 15
AT number, 3, 4
Atabase, 27
ATtended, 9, 15
AUTODESt, 9, 15, 59, 62, 64
AUTOHold, 9, 15
AUTOKill, 9, 15
Automatic back-up, 69
Automatic generation of @BBS field, 67
AUTONode, 9, 15, 59, 61, 64
AX25 CHECK, 7
AX25 FRACK, 6
AX25 MAXFRAMES, 6
AX25 RETRIES, 6
BACkuptim, 9, 15
BADuser, 9, 15
BBs, 9, 15
Bbs alias, 4, 6, 11, 26, 115
BBS CALL, 6
BBSLIST.DAT, 55, 56, 74, 87, 92, 93, 95, 98
BBSTONTS.BIN, 54, 55, 56, 74, 95, 103, 104
BBSTONTS.DAT, 55, 56, 74, 92, 93, 95
BDigi, 9, 16
BElloff, 9
BElloff on/off, 16
BIDall, 9, 16
BINterval, 9, 16, 64
BMax, 16
BMaxcon, 9
BOOT, 9, 17
BPorts, 9, 17
BText, 9, 17
BUDCalls, 9, 17
BUDList, 9, 17
Bye command, 34
C BBS or C bbscallsign, 64
CAPTURE.DAT, 18
CHANNEL NUMBERS, 68
CHAnstat, 9, 18
CHEck, 9, 18
CL B #, 9, 18
CLrscrn, 9, 18
CMdwindow, 9, 18
8-121
Conference command, 34
COpy, 9, 16, 19
CRetries, 9, 19
Ctrl/F2, 33
Ctrl/F4, 33
Ctrl/F5, 33
Ctrl/F6, 33
C#, 9, 17
Database, 35, 41, 42, 64
DEBug, 9, 19
Default directory, 1
DELEfile, 9, 19
DELUDays, 9, 19, 68
DELUSer, 10, 19
DESt, 10, 12, 19, 27, 29, 33, 60, 61, 64
DESt ADD, 60
DESt DELete, 60
DESt REPlace, 60
DEStination, 14, 15, 19, 27, 38, 50, 54, 57, 60, 62, 64, 113
DEStination NODe, 57
DFree, 10, 19
DIGI statement, 5
DIGipeats, 10, 19
DIRectory, 10, 19
DISconnec, 10, 20
DOcmdfile, 10, 20
DOS, 12, 19, 20, 29, 103, 104
Download command, 35
DPorts, 10, 20, 24
DROPING @BBS, 52
DRoute, 10, 20
DRoute DELete, 20
DTimedate, 10, 20
EDit, 10, 20
EFile, 10, 20
EMsghdr, 10, 20
END OF LINE BELLS, 68
EUser, 10, 21
Executing commands from within the forwarding file, 50
F2 time, 10, 22
FBbstimes, 10, 21
FCall, 10, 21
FFile, 10, 21
FIle, 10, 21
Files related to TCP/IP, 111
FOrward, 10, 21
FORWARD CALL, 6
FORWARDING DISPLAY, 52
FORWARDING NOTES, 50
FRAck, 10, 22, 69
FREE, 10, 22
FSize, 10, 22
8-122
FTIme, 10, 22
FTP COMMANDS, 113
FTPgm, 10, 22
FUlldup, 10
FUllduplex, 22
Function key usage:, 12, 33
G command, 35
GEtmsgotd, 10, 22
GRep, 10, 22
H command, 35
HCAll, 10, 23, 28
HCLean, 10, 23
HDRS command has been removed, 73
HEard, 10, 23
Help, 10, 23
HELP\MSYSMSGS.DAT, 1
HF Forwarding, 52
HOstname, 10, 23
How I Run My Network NODe, 61
HREPlace, 10, 23
I command, 35
ID, 10, 23
ID CALL, 6
ID EVERY, 6
IGnore, 10, 23
Information for Advanced Users, 103
INT number, 3, 4
IP Routing, 113, 114
IPTTL #, 24
IPTTL # TCP/IP Time to live, 10
J command, 36
JBbs, 10, 24
JDigipeat, 10, 24
JGateways, 10, 24
JHeard, 10, 24
JKanodes, 10, 24
JMsys, 10, 24
JNetrom, 10, 24
JTcp/ip, 10, 24
K command, 36
KANODE CALL, 6
KEyboard, 10, 24, 66
KILLproc, 10, 24
KPorts, 11, 24
L command, 36
LCount, 11, 25
LINKED, 66
LOCKkbd, 11, 25
LOCKUPS, 67
8-123
LOG, 67
LUsers, 11, 25
M command, 37
MAIL BEACON, 67
MAIL.BAK, 28, 56, 69, 74, 77, 78, 87, 96, 103, 119
MAKEPriva, 11, 25
Manual Operations on the Network NODe Database, 60
MAStersrv, 11, 25
MAX channels AND PORTS, 68
MAxFrames, 11, 25
MAXRead, 11, 25
MCon, 11, 25
MDir, 11, 25
MEMory, 11, 25
MEMORY MANAGEMENT, 65
MERge, 1, 11, 25, 26, 47, 48, 74, 98, 119
Message of the day, 10, 22, 34, 37
MHclear, 11, 26
MINmem, 11
Miscellaneous Comments on Network NODe, 63
MODEM Support, 110
MONBframe, 11, 26
MONIFrame, 11, 26
MONITor, 11, 26
MONITOR BFRAMES, 7
MONITOR IFRAMES, 7
MONITOR OUTGOING, 7
MONITOR PORTS, 7
MONITOR SFRAMES, 7
MONITOR UFRAMES, 7
MONOutgoi, 11, 26
MONPorts, 11, 25, 26
MONSFrame, 11, 26
MONSTats, 11, 26
MONUFrame, 11, 26
MONxx, 11, 26, 66
MSYSBBSB.DAT, 1, 46, 103, 116
MSYSFWD.DEF, 1, 11, 25, 26, 47, 48, 50
MSYSHOST.NET, 31, 103, 111, 117
MSYSK.OTD, 116
MSYSPASS.DAT, 103, 112, 113, 117
MSYSTNC.1, 117
MSYSTNC.#, 4, 67
MSYS.BBS, 25, 47, 50, 52
Msys.def, 1, 3, 4, 8, 86
MSYS.DO, 14, 65, 115
MSYS.FWD, 11, 25, 26, 47, 82, 103, 107
MSYS.HCL, 23, 108
Msys.opt, 1, 2, 3, 4, 8, 32, 66, 68, 86, 115, 119
MSYS.OTD, 22, 116
MSYS.REP, 47, 48, 116
MSYS.RMT, 65, 79, 116
MUTIL.EXE, 55, 74
MUTIL.EXE Function 9, 3
8-124
MYAlias, 11, 26
MYBbs, 11, 26
MYCall, 11, 27
MYIpaddr, 11, 27
MYKnode, 11, 27
MYTcpcall, 11, 27
N command, 37
NAME description, 3
NDWindow, 11, 27, 64
Neighbor NODe, 57
NET NODe Parameters Summary, 64
NETBbs, 11, 27, 64
NETCon, 11, 27, 64
NETNode, 11, 27, 59, 61, 62
NETTalk, 11, 27, 64
Network NODe Quickstart, 59
NEWUser, 11, 27, 68
NInfo, 11, 27, 64
NNode, 11, 27
NOBulls, 11, 27
NODe, 1, 5, 6, 11, 24, 25, 27, 28, 36, 43, 45, 46, 57, 58, 59, 60,
61, 62, 63, 64, 116
NODe ADD, 60
NODe DELete, 60
NODe REPlace, 60
Nodes Broadcast, 57
NPorts, 11, 27, 59, 61, 64
NRCall, 11, 28, 59, 63, 64
NRid, 11, 28, 64
NTtl, 11, 28, 64
NUMCHANS number, 5
OCInit, 11, 28, 64
OCMmin, 11, 28, 64
OLdbids, 11, 28
P command, 38
Packet size, 66
PAClen, 11, 28
PATh, 11, 28
Performance hint, 119
PF command, 38
PForward, 11, 28
PMessage, 11, 28
PORT number, 3
PORT statement, 4
POrts, 12, 28
PPersist, 12, 28
PQuality, 12, 28, 61, 64
PRInt, 12, 29
PROCESS processname, 8
PROcesses, 12, 29
PRompt, 50
PRTmsgs, 12, 29
8-125
PWindow, 12, 29
QUIT, 12, 29
R command, 38
RDir, 12, 29
Remote SYSOP, 65
REMove, 2, 12, 15, 19, 27, 29, 64
REMove a DEStination NODe, 60
REName, 12, 29
REPlaces, 12, 29
Required subdirectories:, 1
RESpons #, 12, 29
RETries, 12, 29
REVERSE FORWARDING, 48
Routing, 57
RS-232 connection to tncs running Net/Rom and TheN, 70
RUn, 12, 29
S command, 38
Scripts, 45
SELECTIVE FORWARDING, 49
SEnd, 12, 30
SLottime, 12, 30
SMTP, 12, 30, 69
SMTP FORWARDING, 50
SNow, 12, 30
SOrt, 12, 30
SPEED number, 3
STACK processname, 8
STACK requirement, 66
STatus, 12, 31
SUBPORT number, 3
SUspendtr, 12
SUspendtrace, 31
SYSOP NAME, 8
SYSOP QTH, 8
SYSOP ZIP zip code, 8
T command, 39
TABs, 12, 31
TACK, 12, 31, 64
TBdelay, 12, 31, 64
TCP/IP FORWARDING, 49
TELnet, 12, 31
Terminate the connection, 18
TESTING, 69
TFrames, 12, 31
TImezone, 12, 32
TNatime, 12, 32, 64
To renumber the messages, 89
TPorts, 12, 32
Trace25, 12, 32
TraceIP, 12, 32
TRetries, 12, 32, 64
8-126
TTimeout, 12, 32, 64
TXDelay, 12, 32
TXTail, 12, 32
TYpe, 12, 32
Type of a message (the "TR" field, 70
Type of monitor, 1
U command, 39
Upload command, 39
USER ACCESS, 112
USER BIT SETTINGS, 68
Users, 12
Users filename, 32
V command, 39
Video, 12, 32
W command, 39
WAtch, 12, 32
WBackgrnd, 12, 32
WColors, 12, 33
WForegrnd, 12, 33
WHo, 12, 33
Window, 12, 33
WINDOW DISPLAY, 8
WINDOW number, 7
WP SERVER, 68
WPAge, 12, 33
WPEvery, 12, 33
WQupdate, 12, 33, 64
WSize, 12, 33
W?, 12, 33
X command, 39
#msgs/use, 9, 14
(MUTIL.EXE Function 9), 1
* at the beginning, 40
*comment, 9, 14
***, 73
*** HEADERS, 73
< filename, 40
> filename and >> filename, 40
@BBS, 67
@home, 9, 14
\Sysop command, 65
\+\ filename, 16, 18, 69
8-127